Почему стандартная библиотека FILE записывается в верхнем регистре?
Это из-за его непрозрачности?
Спасибо.
Ответ 1
Если вы посмотрите на соглашение об именах, используемое в C, верхний регистр обычно используется для макросов препроцессора. Я предполагаю, что он первоначально был реализован как макрос, расширяющийся до конкретного типа, используемого в реализации библиотеки.
"Строго говоря, в C тип FILE - это библиотека, определенная в заголовке типа stdio.h(см. ключевое слово typedef). Не нужно использовать тип FILE как таковой, только тип FILE * (указатель на FILE). Это (один из;) C язык смешные идиомы.
Как обычно, псевдоним типа FILE обозначает структуру, определенную библиотекой, но не использует ее члены напрямую (объект, зависящий от реализации).
Это не непрозрачный тип, он обычно является структурой C, но его поля определены как реализация.
Я предполагаю, что прописная буква - это история...
Ответ 4
Не уверен, но обратите внимание, что в стандартной библиотеке C имеется только несколько типов. Вероятно, FILE был самым первым, и стиль * _t еще не был изобретен.
Или, может быть, в примитивных версиях C это был макрос... подумайте, что произошло до того, как они придумали typedef: