您好,登錄后才能下訂單哦!
這篇文章主要講解了“C語言宏定義怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C語言宏定義怎么使用”吧!
實(shí)參和形參之間僅僅是值傳遞,因此,函數(shù)中無法直接改變實(shí)參。
函數(shù)是一種代碼復(fù)用的手段
把實(shí)現(xiàn)某個(gè)功能的代碼片段進(jìn)行封裝(當(dāng)作一個(gè)整體)
給這個(gè)代碼片段一個(gè)合適的名字(通過名字使用代碼)
定義參數(shù)(定義代碼片段需要處理的問題)
宏是C語言中代碼復(fù)用的補(bǔ)充方式
宏定義語法:#define MACRO(param) code_segment
宏使用語法:MACRO(num);
例如:
#define ADD(a,b) a + b int main() { int z = ADD(1,2); printf("z = %d\n", z); return 0; }
宏不是函數(shù),使用宏沒有函數(shù)調(diào)用的過程
函數(shù)調(diào)用先傳遞參數(shù)值,然后跳轉(zhuǎn)執(zhí)行函數(shù)體,最后返回
使用宏只是單純“代碼復(fù)制粘貼”,然后替換參數(shù)
同一個(gè)函數(shù),無論調(diào)用多少次,都執(zhí)行相同的函數(shù)體代碼
同一個(gè)宏,每次使用都會(huì)“復(fù)制粘貼”相同代碼
預(yù)處理模塊:處理所有宏以及#開頭的語句(復(fù)制粘貼替換)
編譯模塊:將C程序翻譯成二進(jìn)制程序
鏈接模塊:將二進(jìn)制程序組合成可執(zhí)行程序
用一個(gè)簡(jiǎn)單的交換兩個(gè)數(shù)的值作為例子:
#include <stdio.h> #define SWAP(a, b) {int t = a; a = b; b = t;} int main() { int x = 1; int y = 2; SWAP(x, y); // {int t = x; x = y; y = t;} printf("x = %d, y = %d\n", x, y); return 0; }
下面為輸出結(jié)果:
#define NAME value
預(yù)處理模塊將代碼中出現(xiàn)的NAME標(biāo)識(shí)符替換為value
因此,宏常量在本質(zhì)上與字面量相同(真正意義的常量)
感謝各位的閱讀,以上就是“C語言宏定義怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C語言宏定義怎么使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。