我有這樣的C代碼(通過測試的啓發)關於類型,c中的int(*)(int)是什麼意思?
#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) –