为什么stdio.h中的FILE结构是用大写写的?

时间:2015-11-03 19:14:35

标签: c

为什么来自FILE的{​​{1}}结构的名称是用大写写的?

2 个答案:

答案 0 :(得分:20)

最可能的原因是它曾经是#define,而#define通常都是大写字母。

答案 1 :(得分:9)

总结已经指出的内容:

  1. 大写是C" macros"的惯例。

  2. " FILE"旨在成为一个不透明的"结构:你应该使用它,但你不应该知道"已知"关于它的内部。哪个可以(并且将会)从平台变为平台。

    具体做法是:

  3.   

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

         

    FILE是流的主要文件控制结构。最正确   它的结构非常依赖于平台,因此ANSI C提出了这一点   这种结构化类型的确切结构不应该是已知的,并且   编写良好的程序不需要访问内部字段   这种结构。

    1. 正如上面指出的那样,不仅 CAN " FILE"可以实现为宏,但在Unix7中它实际上是 WAS 实现为宏:

      http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/stdio.h

    2. 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
      ...