LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

Ну так можно просто попробовать инициализировать переменную с таким typedef такой функцией

int test_func(int a, int b, int c)
{
  return a+b+c;
}

typedef int (*func_ptr)(int, int, int);

typedef int (*func_ptr_wrong)(int, int);

func_ptr a = test_func;
func_ptr_wrong b = test_func;
И будет:
prog.c:20:20: warning: initialization of 'func_ptr_wrong' {aka 'int (*)(int,  int)'} from incompatible pointer type 'int (*)(int,  int,  int)' [-Wincompatible-pointer-types]
   20 | func_ptr_wrong b = test_func;
      |                    ^~~~~~~~~
Или нужно ошибку компиляции получить?

Исходная версия SZT, :

Ну так можно просто попробовать инициализировать такой typedef такой функцией

int test_func(int a, int b, int c)
{
  return a+b+c;
}

typedef int (*func_ptr)(int, int, int);

typedef int (*func_ptr_wrong)(int, int);

func_ptr a = test_func;
func_ptr_wrong b = test_func;
И будет:
prog.c:20:20: warning: initialization of 'func_ptr_wrong' {aka 'int (*)(int,  int)'} from incompatible pointer type 'int (*)(int,  int,  int)' [-Wincompatible-pointer-types]
   20 | func_ptr_wrong b = test_func;
      |                    ^~~~~~~~~
Или нужно ошибку компиляции получить?