Почему структура FILE из stdio.h написана в верхнем регистре?

Почему имя структуры FILE из stdio.h записано в верхнем регистре?

Ответы

Ответ 1

Наиболее вероятная причина заключалась в том, что она была когда-то #define, а #define - это все колпачки.

Ответ 2

Подводя итог тому, что уже было указано:

  • UPPER CASE - это соглашение для макросов C ".

  • "ФАЙЛ" должен быть "непрозрачной" структурой: вы должны использовать его, но вы не должны "знать" об этом внутренности. Что может (и будет) изменяться с платформы на платформу.

    В частности:

http://tigcc.ticalc.org/doc/stdio.html

FILE - основная структура управления файлами для потоков. Точный его структура очень зависима от платформы, поэтому ANSI C предлагает, чтобы точная структура этого структурированного типа не должна быть известна, и хорошо написанные программы не нуждаются в доступе к внутренним полям эта структура.

  1. Как отметил выше алк, не только 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
...