static void fubar(int a)
{
void (*b) (int) = fubar; // <---
static int c;
}
http://cdecl.org/表示语法错误。
我的猜测是b是指向返回int的函数的指针。这是对的吗?
答案 0 :(得分:3)
必须有一些返回类型,
void (*b) (int) = fubar;
或
int (*b) (int) = fubar;
然后它b
将是指向函数的指针,该函数返回void
/ int
并将int
作为参数。
答案 1 :(得分:2)
必须有一个返回类型
int(* b)(int)= fubar;
所以这解释了b是指向函数的指针,它以INT作为参数,它将返回INT值
答案 2 :(得分:1)
我的猜测是b是指向返回int的函数的指针。这是 正确的吗?
您接近正确答案。它确实是一个指向函数的指针,该函数具有返回类型void
和一个类型为int
的参数。
正如您从代码段中看到的那样
static void fubar(int a)
{
void (*b) (int) = fubar; // <---
static int c;
}
在作业的右侧,标识符fubar
已经被声明为
void fubar(int a)
。在函数内部,只需将它赋值给相同类型的指针即可。