宏定义
函数上面定义的宏,下面出现宏时,在计算机预处理时会将其全部替换为宏后面的东西,不需要加分号。
#define PI 3.14159//PI为宏,#define为编译预处理指令,把程序内的宏替换为宏后面的东西,不是c语言的语句,故不需要加;
注:
-
如果一个宏内有其他宏的名字也会被替换。
-
如果宏后面的东西超过一行,在最后一行之前的行尾要加**’ \ '**。
-
宏后面也可以注释,不会被当作值。
-
可以定义有值的宏,也可以定义没有值的宏。
-
宏可以带参数,宏后的值无论多复杂,最外面都要套一层():
#define cube(x) (…………)//意思为宏名为cube(x),后面会被宏后面的东西替换 //易错 #define red1(x) (x * 57); #define red2(x) (x) * 57; //当把宏用于加减乘除时,会因为符号问题而导致自己想要的结果无法呈现,故宏后的值无论多复杂,最外面都要套一层()
-
在c中有预先定义的宏:
__LINE__//源代码文件的行号 __FILE__//源代码文件的名字 __DATE__//源代码文件的编译日期 __TIME__//源代码文件的编译时间 __STDC__