像“typedef int (f)(void)”这样带括号的 typedef 是什么意思?它是函数原型吗?

2023-11-25

typedef int (fc_name) (void);

Here fc_name是任何有效的 C 符号。

这与函数指针有什么不同typedef?


It's a typedef到一个函数类型。目的是将其用于函数指针,但在本例中使用它的语法是:

int bar(void);

fc_name* foo = bar; /* Note the * */

更新: 正如评论中提到的乔纳森·莱夫勒的回答, the typedef可用于声明函数。一个用途可能是声明一组回调函数:

typedef int (callback)(int, void*);

callback onFoo;
callback onBar;
callback onBaz;
callback onQux;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

像“typedef int (f)(void)”这样带括号的 typedef 是什么意思?它是函数原型吗? 的相关文章

随机推荐