##### C.预处理器 - 预处理器 - C 预处理器在程序编译之前查看程序, 根据程序中的预处理器指令, 把符号缩写替换成其表示的内容. 预处理器可以包含程序所需的其他文件, 可以选择让编译器查看哪些代码. 预处理器并不知道 C . 基本上它的工作是把一些文本转换成另外一些文本 - 在执行指令前, 会首先对代码做一些格式化, 例如把多行物理行处理为一行逻辑行, 用一个空格字符替换每一条注释等 - 预处理器指令 - 预处理器指令从 `#` 开始运行, 到后面的第1个换行符为止, 指令的长度仅限于一行 - 文件包含指令 [[C.include|include]] - 宏定义指令 [[C.define|define]] [[C.undef|undef]] - 条件编译指令 - 代码优化指令 - 其他预处理指令 - 预处理器宏 - C 标准规定了一些预定义宏, 宏是一段已命名的代码片段, 每当使用该名称时, 它都会被宏的内容替换 - `__DATE__` 当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量 - `__TIME__` 当前时间,一个以 "HH:MM:SS" 格式表示的字符常量 - `__FILE__` 这会包含当前文件名,一个字符串常量 - `__LINE__` 这会包含当前行号,一个十进制常量 - `__STDC__` 当编译器以 ANSI 标准编译时,则定义为 1