预处理器伪指令

预处理是在编译之前处理文本的初始阶段。 预处理器伪指令是源文件的行,其中第一个非空格字符是 #,这将它们与其他文本行区分开。 每个预处理器伪指令的作用是对文本进行更改,结果是对不包含伪指令或注释的文本进行变换。 编译器可以选择将预处理后的文本输出到具有 .i 后缀的文件。 预处理始终是编译的初始阶段,即使文本已经过预处理也是如此。

预处理器伪指令由下列各项组成:

预处理器伪指令以 # 令牌开头,后跟预处理器关键字。 # 标记必须显示为行上非空格的第一个字符。 # 不是伪指令名称的一部分,可以使用空格与名称分隔。

除非行的最后一个字符是 \ (反斜杠) 字符,否则预处理器伪指令以换行符结尾。 如果 \ 字符显示为预处理器行中的最后一个字符,那么预处理器会将 \ 和换行符解释为连续标记。 预处理器将删除 \ (以及以下换行符) ,并将物理源行拼接成连续逻辑行。 反斜杠与行尾字符或记录的物理结尾之间允许有空格。 但是,此空格通常在编辑期间不可见。

除了某些 #pragma 伪指令外,预处理器伪指令可以出现在程序中的任何位置。