Ответ 1
Наиболее вероятная причина заключалась в том, что она была когда-то #define
, а #define
- это все колпачки.
Почему имя структуры FILE
из stdio.h
записано в верхнем регистре?
Наиболее вероятная причина заключалась в том, что она была когда-то #define
, а #define
- это все колпачки.
Подводя итог тому, что уже было указано:
UPPER CASE - это соглашение для макросов C ".
"ФАЙЛ" должен быть "непрозрачной" структурой: вы должны использовать его, но вы не должны "знать" об этом внутренности. Что может (и будет) изменяться с платформы на платформу.
В частности:
http://tigcc.ticalc.org/doc/stdio.html
FILE - основная структура управления файлами для потоков. Точный его структура очень зависима от платформы, поэтому ANSI C предлагает, чтобы точная структура этого структурированного типа не должна быть известна, и хорошо написанные программы не нуждаются в доступе к внутренним полям эта структура.
Как отметил выше алк, не только CAN "FILE" реализуется как макрос, но и в Unix7 он фактически реализован как макрос:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/stdio.h
V7/usr/include/stdio.h = >
#define BUFSIZ 512
#define _NFILE 20
# ifndef FILE
extern struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
char _flag;
char _file;
} _iob[_NFILE];
# endif
...
#define FILE struct _iobuf
...