Я вижу следующий код в программе HPUX C:
extern int fcntl __((int, int, ...));
_LF_EXTERN int creat __((const char *, mode_t));
Эти строки компилируются с использованием aCC.
Может ли кто-нибудь дать мне знать значение 2 подчеркивания после fcntl
а также creat
в приведенном коде?
Скорее всего, это макрос, который позволяет использовать заголовок со старыми компиляторами до ANSI C.
Объявления функции «старого стиля» C не включают типы параметров.
Я подозреваю, что его определение выглядит примерно так
#ifdef __STDC__
#define __(params) params
#else
#define __(params) ()
#endif
Я полагаю, что прототипы функций с типобезопасностью — это одна из первых возможностей языка, которые C заимствовал из C ++.
И тот факт, что я помню это, заставляет меня чувствовать себя очень, очень старым.