c语言复习(二)宏定义和条件编译
宏定义:
#define G 9.8
。。。。。
。。。。。。
#undef G
宏定义的作用域
注意不同:
#define AB(X) x*x-2*x+10
AB(1+2)=1+2*1+2-2*1+2+10=15
AB(3)=3*3-2*3+10=13
AB(3)*10=3*3-2*3+10*10=103
#define AB(x) ((x)*(x)-2*(X)+10)
AB(1+2)=(1+2)*(1+2)+10=13
AB(3)*10=(3*3-2*3+10)*10=130
宏只是进行简单的字符替换。宏展开是编译前进行的,在展开时不分配内存单元。宏不存在类型问题,宏名没有类型。它的参数也没有类型。只是一个符号代表。展开时带入指定的字符串即可。
条件编译:
#define Debug
#ifdef Debug
....
#else
......
#endif
#if
#else
#endif