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

时间:2017-11-07 21:35:06

标签: c

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

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

我试图在google中查找解释,但我没有找到任何相关信息。

2 个答案:

答案 0 :(得分:3)

它正在定义一个变量' f'这是一个指向函数' fs'的函数指针。 ' FS'是一个不带参数的函数,返回什么都没有,所以它可能看起来像:

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

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

(*f)();

它会打电话给' fs'你会在fs"

中打印出#34;

答案 1 :(得分:2)

我在 cdecl 中添加了相同的声明,它显示了我

  

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

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