- 相關(guān)推薦
C 語言中宏的使用
宏的主要作用是在編譯預(yù)處理時,對程序中所有出現(xiàn)的“宏名”都用宏定義中的字符串去代換 。
宏定義是由源程序中的宏定義命令完成的,宏代換是由預(yù)處理程序自動完成的。在 C 語言中,“宏”分為有參數(shù)和無參數(shù)兩種,即分別簡稱為有參宏和無參宏。
無參宏
無參宏的宏名后不帶參數(shù),其定義的一般形式為:
#define 標(biāo)識符 字符串
其中的 “#” 表示這是一條預(yù)處理命令,凡是以 “#” 開頭的均為預(yù)處理命令!癲efine” 為宏定義命令,“標(biāo)識符” 為所定義的宏名稱,“字符串” 可以是常數(shù)、表達(dá)式、格式串等 。
#include#define NUM 4int main(int argc, const char * argv[]) { int a = 4;
a *= NUM; printf("%d ", a); return 0;
}
運行結(jié)果:16 。這里可以看出我們定義了一個宏名稱為 NUM 的宏,當(dāng) main 中代碼出現(xiàn) NUM 的地方,就會自動用數(shù)字 4 進(jìn)行替換,這樣做的好處是當(dāng)代碼中多處存在同一變量時,只需要修改宏 NUM 的值即可,而無需在代碼中一處處的進(jìn)行修改 。
有參宏
C 語言允許宏帶有參數(shù),在宏定義中的參數(shù)稱為形式參數(shù),宏調(diào)用中的參數(shù)稱為實際參數(shù) 。
對帶參數(shù)的宏,在調(diào)用中,不僅要宏展開,而且要用實參去代換形參 。
帶參宏定義的一般形式為:
#define 宏名(形參表) 字符串
示例代碼:
#include#define SUM(a) a+aint main(int argc, const char * argv[]) { int a = SUM(4); printf("%d ", a); return 0;
}
運行結(jié)果:8 。這里可以發(fā)現(xiàn) SUM 將 4 傳入,通過 a + a ,即 4 + 4 = 8 。
【C 語言中宏的使用】相關(guān)文章:
c語言中指針的使用方法03-20
C語言宏定義07-01
C語言中使用快速排序算法對元素排序的實例03-18
C語言中volatile的含義12-03
C語言中的鏈接編寫05-26
C語言的宏定義分析03-30
C語言的assert斷言宏12-03
C語言中的指針是什么03-17