- 相關(guān)推薦
C 語言中宏的使用
宏的主要作用是在編譯預(yù)處理時(shí),對(duì)程序中所有出現(xiàn)的“宏名”都用宏定義中的字符串去代換 。
宏定義是由源程序中的宏定義命令完成的,宏代換是由預(yù)處理程序自動(dòng)完成的。在 C 語言中,“宏”分為有參數(shù)和無參數(shù)兩種,即分別簡稱為有參宏和無參宏。
無參宏
無參宏的宏名后不帶參數(shù),其定義的一般形式為:
#define 標(biāo)識(shí)符 字符串
其中的 “#” 表示這是一條預(yù)處理命令,凡是以 “#” 開頭的均為預(yù)處理命令!癲efine” 為宏定義命令,“標(biāo)識(shí)符” 為所定義的宏名稱,“字符串” 可以是常數(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è)宏名稱為 NUM 的宏,當(dāng) main 中代碼出現(xiàn) NUM 的地方,就會(huì)自動(dòng)用數(shù)字 4 進(jìn)行替換,這樣做的好處是當(dāng)代碼中多處存在同一變量時(shí),只需要修改宏 NUM 的值即可,而無需在代碼中一處處的進(jìn)行修改 。
有參宏
C 語言允許宏帶有參數(shù),在宏定義中的參數(shù)稱為形式參數(shù),宏調(diào)用中的參數(shù)稱為實(shí)際參數(shù) 。
對(duì)帶參數(shù)的宏,在調(diào)用中,不僅要宏展開,而且要用實(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 傳入,通過 a + a ,即 4 + 4 = 8 。
【C 語言中宏的使用】相關(guān)文章:
簡單講解C語言中宏的定義與使用07-30
C語言中的預(yù)編譯宏定義02-26
C語言中如何定義函數(shù)式宏02-15
C語言中如何使用sscanf04-12
C語言中define的使用方法02-26
C語言中volatile的使用方法01-30
C語言中用宏怎么構(gòu)造標(biāo)識(shí)符06-02
c語言中指針的使用方法05-16