C 的预处理器不是编译器的组成部分,它是编译过程中一个单独的步骤,它们会指示编译器在实际编译之前完成所需的预处理。
GCC编译C语言程序的全过程
C 语言的预处理指令是以 # 号开头的代码行,# 后是指令关键字,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。
下面是一些常见预处理命令的使用介绍。
#include 包含一个源代码文件
#include <stdio.h>
即从系统库中获取 stdio.h,并添加文本到当前的源文件中。
#define 定义宏
#undef 取消已定义的宏
#define MAX_NUM 99
#undef MAX_NUM
先定义宏 MAX_NUM,再取消该宏的定义。
#if 如果给定条件为真,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#else 否则 (与#if对应)
#endif 结束对应的#if件编译块
这几条指令适用于条件编译,包括下面两个。
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#ifdef DEBUG
/* Your debugging message */
#endif
如果定义了 DEBUG,则执行下面的处理语句。
#error 停止编译并显示错误信息
如果预处理方面有错误,那么就会打印#error指令后面的文本内容。
,