У меня есть этот код С (вдохновленный тест)Что означает `int (*) (int)` in c mean в отношении типа?
#include <stdio.h>
int foo (int n)
{
static int s = 0;
return s += n;
}
int main()
{
int y;
int i;
for (i=0; i<5; i++) {
y= foo(i);
}
printf("%d\n", foo);
return 0;
}
и я определенно заинтересован в значении foo
и какой тип имеет. Компилятор дает мне это предупреждение
test.c:18:16: warning: format specifies type 'int' but the argument has type
'int (*)(int)' [-Wformat]
но я не совсем уверен, что это значит. Что такое int (*)(int)
и как вызов имени функции без аргументов дает мне что-то подобное?
Если вы хотите получить значение 'foo', используйте' printf ("% p", (void *) foo); ', но это не гарантируется стандартом. Для типа см. [This] (http://cdecl.ridiculousfish.com/?q=int+%28*foo%29%28int%29) –