预处理阶段会执行这些指令。
1 预定义符号
FILE 进行编译的源文件名
LINE 文件当前的行号
DATE 文件被编译的日期
TIME 文件被编译的时间
2 define
2.1 宏定义
//#define suqre(x) x*x
如果一个现存的名字需要重新定义,那么旧的定义首先必须要用#undef 来移除。
3 条件编译
3.1
# if
# elif
# endif
3.2 判断是否被编译
# if define(symbol)
# elif !define(symbol)
# endif
3.2 指令嵌套
更加清晰的显示def
4 文件包含include
# include <filename>
4.1 解决多重包含问题
# include "a.h"
# include "b.h"
如果a和b都包含x.h的话那么就会形成多重包含,解决这个问题的方法就是使用条件编译
# ifndef _X_H_
#define _X_H_ 1 //写成1 和不写成1的意义一样,表示符号已经被定义。
/*header file*/
# endif
这样多重包含的危险就会被消除,当头文件第一次被包含时,被正常处理,但是如果再次被包含的话,该头文件就不会被执行。
5 其他指令
# progma