C中的“void(* f)(void)”是什么意思

任何人都可以在C中解释这行代码:

void (*f)(void)= &fs ; 

我试图在谷歌寻找解释,但我没有找到任何关于它。

它定义了一个变量’f’,它是一个指向函数’fs’的函数指针。 ‘fs’是一个不带参数的函数,返回什么都没有,所以看起来像:

 void fs(void) { printf("in fs"); } 

如果您在问题中的行后面运行以下代码

 (*f)(); 

它会调用’fs’,你会得到一个“在fs”的打印

我在cdecl中添加了相同的语句,它显示了我

f声明为函数(void)返回void指针

这就对了!! 换句话说,在这里,我们将类型的变量f定义为一个函数指针,它不接受任何参数( (void) )并返回一个void 。 我们用另一个函数fs的地址初始化变量,这样, f指向fs函数,可以用来调用/调用fs