C 预处理器(C Preprocessor)简写为 CPP。
预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。
以井号(#)开头,它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。
例如,我们常用的:
#ifndef XX
#define XX
...
...
#endif
表示CPP 只有当XX 未定义时,才定义 XX。
预处理器定义了一些预处理标识符,也就是预定义宏。预定义宏的名称都是以“__”(两条下划线)开头和结尾的,如果宏名是由两个单词组成,那么中间以“_”(一条下划线)进行连接。并且,宏名称一般都由大写字符组成。
这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。