预处理
1、#define
1. 宏常量
1、#define定义宏常量可以出现在代码的任何地方
2、从#define宏定义位置开始,以后的代码就都可以使用这个宏了
3、编译器会在预处理的时候用真身替换宏
数值宏常量
#define PI 3.1415926
#define ERROR -1
字符串宏常量
#define STR_1 “hello”
#define STR_2 hello
#define STR_3 “hell\
o”
反斜杠作为接续符的时候,在本行后面不能再有任何字符,空格都不行。
2. 宏函数(以空间换时间)
优点:有效避免了函数的入栈、出栈、调转等时间的开销
缺点:大大增加了可执行文件的体积
#define SUM(a, b) ((a)+(b))
#define MIN(a, b) ((a)<(b) ? (a) : (b))
3. 撤销宏 (#undef)
#define PI 3.1415926
#undef PI
4.内置宏
__LINE__:表示正在编译的文件的行号
__FILE__:表示正在编译的文件的名字
__DATE__:表示编译时刻的日期字符串
__TIME__:表示