1.定义顺序的无关性
#define PI 3.14
#define TWO_PI 2*PI
这两句谁前谁后无所谓,因为预处理器不断迭代来实现宏替换,直到源文件中没有宏了才停止。
2. 宏变量变成字符串
#define str(x) #x
例子:str (teststring) ==> "teststring"
3. 宏变量拼接
#define print(n) printf("%d ",x##n)
例子:print(20) ==> printf("%d ",x20)
4. 定义长字符串如何换行
#define url "http://www.baidu.com"
"?hello=world&ni=hao"
注意编译器会把两个相邻的字符串连接到一起,形成单个字符串。