C 語(yǔ)言中宏的使用
宏的主要作用是在編譯預(yù)處理時(shí),對(duì)程序中所有出現(xiàn)的“宏名”都用宏定義中的字符串去代換 。
宏定義是由源程序中的宏定義命令完成的,宏代換是由預(yù)處理程序自動(dòng)完成的。在 C 語(yǔ)言中,“宏”分為有參數(shù)和無(wú)參數(shù)兩種,即分別簡(jiǎn)稱(chēng)為有參宏和無(wú)參宏。
無(wú)參宏
無(wú)參宏的宏名后不帶參數(shù),其定義的一般形式為:
#define 標(biāo)識(shí)符 字符串
其中的 “#” 表示這是一條預(yù)處理命令,凡是以 “#” 開(kāi)頭的均為預(yù)處理命令。“define” 為宏定義命令,“標(biāo)識(shí)符” 為所定義的宏名稱(chēng),“字符串” 可以是常數(shù)、表達(dá)式、格式串等 。
#include#define NUM 4int main(int argc, const char * argv[]) { int a = 4;
a *= NUM; printf("%d ", a); return 0;
}
運(yùn)行結(jié)果:16 。這里可以看出我們定義了一個(gè)宏名稱(chēng)為 NUM 的宏,當(dāng) main 中代碼出現(xiàn) NUM 的地方,就會(huì)自動(dòng)用數(shù)字 4 進(jìn)行替換,這樣做的好處是當(dāng)代碼中多處存在同一變量時(shí),只需要修改宏 NUM 的值即可,而無(wú)需在代碼中一處處的進(jìn)行修改 。
有參宏
C 語(yǔ)言允許宏帶有參數(shù),在宏定義中的參數(shù)稱(chēng)為形式參數(shù),宏調(diào)用中的參數(shù)稱(chēng)為實(shí)際參數(shù) 。
對(duì)帶參數(shù)的宏,在調(diào)用中,不僅要宏展開(kāi),而且要用實(shí)參去代換形參 。
帶參宏定義的一般形式為:
#define 宏名(形參表) 字符串
示例代碼:
#include#define SUM(a) a+aint main(int argc, const char * argv[]) { int a = SUM(4); printf("%d ", a); return 0;
}
運(yùn)行結(jié)果:8 。這里可以發(fā)現(xiàn) SUM 將 4 傳入,通過(guò) a + a ,即 4 + 4 = 8 。
【C 語(yǔ)言中宏的使用】相關(guān)文章:
簡(jiǎn)單講解C語(yǔ)言中宏的定義與使用02-26
C語(yǔ)言中的預(yù)編譯宏定義02-26
C語(yǔ)言中如何使用sscanf10-14
C語(yǔ)言中strstr()函數(shù)的使用分析11-10
C語(yǔ)言中define的使用方法02-26
C語(yǔ)言中用宏怎么構(gòu)造標(biāo)識(shí)符10-09
C語(yǔ)言中AddRef和Release的使用技巧12-22
- 相關(guān)推薦