问我见过像这样的函数声明
extern int func __((int, int));那些额外的括号和下划线是做什么用的?
答它们是一种技巧的一部分,这种技巧允许函数声明的原型部分对预 ANSI 编译器关闭。在别处有一个类似的条件宏定义__宏如下
#ifdef __STDC__ #define __(proto) proto #else #define __(proto) () #endif调用中的额外括号
extern int func __((int, int));是必需的,以便将整个原型列表(可能包含许多逗号)视为宏所期望的单个参数。
其他链接: 进一步阅读