我在HPUX C程序中看到以下代码:
extern int fcntl __((int, int, ...));
_LF_EXTERN int creat __((const char *, mode_t));
这些行使用aCC编译。
谁能告诉我上面代码中fcntl
和creat
后面的2个下划线是什么意思?
这很可能是一个宏,它允许在旧的ansi之前的C编译器中使用头文件。
"老式"的C函数声明不包括参数类型。
我猜它的定义有点像这样
#ifdef __STDC__
#define __(params) params
#else
#define __(params) ()
#endif
我相信类型安全的函数原型是C从c++中采用的第一个语言特性之一。
事实上,我记得这些让我觉得自己非常非常老。