c++ - Hpux C程序中__(两个下划线)代表什么

标签 c++ c hp-ux acc

我在 HPUX C 程序中看到以下代码:

   extern int fcntl __((int, int, ...));
   _LF_EXTERN int creat __((const char *, mode_t));

这些行是使用 aCC 编译的。

谁能告诉我上面代码中fcntlcreat后面的2个下划线是什么意思?

最佳答案

这很可能是一个宏,它允许在旧的、ANSI C 之前的编译器中使用 header 。
“旧式”C 函数声明不包括参数类型。

我怀疑它的定义看起来有点像这样

#ifdef __STDC__
#define __(params) params
#else
#define __(params) ()
#endif 

我相信类型安全的函数原型(prototype)是 C 从 C++ 中采用的第一个语言特性。
事实上,我记得这一点让我觉得自己非常非常老。

关于c++ - Hpux C程序中__(两个下划线)代表什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383225/

相关文章:

c++ - 更新返回 0 即使表中没有此 id

C - 从数组(结构数组)中删除除平均成绩最高的 10 名学生之外的学生

c - 在 HP-UX 11.00 中,什么会导致应用程序报告来自 .sl 库的 undefined symbol __shlinit?

C 中的编译错误 : Inconsistent type declaration/Illegal redeclaration for identifier

c++ - SAX2 (Xerces-C) : How to get the line number of parsed tags?

c++ - 大数组上的段错误

c++ - 在主函数中使用类中的数组

c - 从 BLE 接收的数据无法从十六进制转换为字符串(北欧)

c - 在 C 中无效使用灵活数组 ERROR

c++ - 如何在 hp-ux 中使用 gcc 创建共享库?