c中的`int(*)(int)`对于类型是什么意思?

use*_*276 2 c types function

我有这个C代码(灵感来自测试)

#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;
}
Run Code Online (Sandbox Code Playgroud)

我特别感兴趣的是它的价值foo和类型.编译器给了我这个警告

test.c:18:16: warning: format specifies type 'int' but the argument has type
      'int (*)(int)' [-Wformat]
Run Code Online (Sandbox Code Playgroud)

但我不确定这意味着什么.什么是int (*)(int)如何调用没有参数的函数名称给我这种类型的东西?

R S*_*ahu 10

如果没有函数调用,则foo求值为指向函数的指针,该函数接受int并返回int.这是长期的描述int (*)(int).