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