Edw*_*rak 20
最可能的原因是它曾经是一个#define,而且#define通常都是全部大写.
总结已经指出的内容:
大写是C"宏"的惯例.
"FILE"意图是一个"不透明"的结构:你应该使用它,但你不应该"知道"它的内部结构.哪个可以(并且将会)从平台变为平台.
特别:
http://tigcc.ticalc.org/doc/stdio.html
FILE是流的主要文件控制结构.它的确切结构非常依赖于平台,因此ANSI C建议不应该知道这种结构化类型的确切结构,并且编写良好的程序不需要访问该结构的内部字段.
正如上面ALK指出,不仅CAN "FILE"被实现为宏,但在Unix7它实际上WAS实现为宏:
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
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
983 次 |
| 最近记录: |