prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 17.4b

我见过像这样的函数声明

extern int func __((int, int));
那些额外的括号和下划线是做什么用的?


它们是一种技巧的一部分,这种技巧允许函数声明的原型部分对预 ANSI 编译器关闭。在别处有一个类似的条件宏定义__宏如下

	#ifdef __STDC__
	#define __(proto) proto
	#else
	#define __(proto) ()
	#endif
调用中的额外括号
	extern int func __((int, int));
是必需的,以便将整个原型列表(可能包含许多逗号)视为宏所期望的单个参数。

其他链接: 进一步阅读


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管