很久沒有寫BLOG了^_^
不知道寫什麼好,就寫寫大家比較容易忽略的東西吧
一:特殊的字符串宏
[cpp]
#define A(x) T_##x
#define B(x) #@x
#define C(x) #x
我們假設x=1, 則上面的宏定義會被解釋成以下的樣子
A(1)------>T_1
B(1)------>'1'
C(1)------>"1"
這些主要用於一些字符串處理函數和參數命名上,並不復雜,不過知者甚少
二:屏蔽無用參數警告
[cpp]
#define UNUSED_PARAM(p) ((void)p)
這個用來屏蔽無效參數的
比如
[cpp] view plaincopy
void a(int x1, int x2)
{
// do nothing
}
這樣會彈出警告,x1,x2是無效的參數
但是,寫成這樣,就沒關系了
[cpp]
void a(int x1, int x2)
{
UNUSED_PARAM(x1);
UNUSED_PARAM(x2);
}
三: 想不出來了,占位,等睡醒了在想
宏的更常見用法我就不寫了,比如頭文件的保衛宏,版本定義宏,靈活使用確實事半功倍。
作者:vonger