_LINE_ 十进制整数常量,表示当前源程序代码的行号
_FILE_ 字符串常量,表示当前源文件名
_DATE_ 字符串常员,表示当前日期,格式为:"mmm ddyyyy"
_TIMESTAMP字符串常量,表示最后一次修改源文件的日期和时间,格式为:Ddd Mmm hh:mm:ss yyyy
_STDC_如果编译器与ANSI C兼容的则代表个十进制数1
      #line 指令覆盖了编译器自动生成的行号。可以用它来帮助调试程序。假定刚把一个50
行的例程合并到一个大约400行的文件中。关心的是这些合并进去的代码所可能产生的错误。
      一般地,编译器从文件的开始处开始生成行号。如果例程中有错误,编译器将会输出错
误信息并且给出行号,可能是289。从合并进去的代码这方面来看,这算什么?但是,如果
在合并代码的开始部分包含了一个#line指令,编译器给出的错误行号将是相对于这个函数
的开头的

#error指令指示编译器产生一个用户自定义的错误消息。这可以扩展编译器的错误检测
和消息能力。编译器遇到—个#error指令之后,它在程序剩下的部分搜索语法错误,但是
并不生成目标文件。

#pragma指令给编译器指定与具体实现方式有关的指令