< p > # 的作用是什么?
你需要记住的一件重要事情是,C 预处理器不是 C 编译器的一部分。
C 预处理器使用不同的语法。所有 C 预处理器指令都以井号(#)开头。换句话说,井号表示预处理器指令的开始,必须在行的第一个非空白字符上使用。
#
可能是任意选择作为C语法中未被使用的字符来表示预处理器指令,我猜 @
也可以。
如果没有一个字符来表示它,那么就可能很难区分适用于预处理器的代码 - 你如何判断 if (FOO)
是预处理还是不应该预处理呢?
#
是引入预处理器语句的标准前缀。#
符号只是一个有用的字符,可以被预处理器识别并采取措施,例如:#include <stdio.h>
#if 0
#endif
#pragma treat_warnings_as_errors
#define USE_BUGGY_CODE
等等。
#
是一个预处理器指令。预处理器处理源文件包含指令 (#include
)、宏定义 (#define
) 和条件包含 (#if
) 等指令。当预处理器遇到此指令时,将包含头文件,展开宏并继续编译。它也可以用于其他目的,如使用 #error 指令停止编译。这被称为条件编译。
我们知道,在没有预处理器的情况下,程序是无法运行的。而预处理器包括 # 或 #include 或 #define 等等。因此,在 #include 前面必须加上 #。