十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
主要用于函數(shù)重定義,通用性,可以用一個(gè)變量符號(hào)替代另一個(gè)變量符號(hào)
10年積累的成都做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有七臺(tái)河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
格式:#define M(x,y) x+y
在主程序里寫入z=M(6,9);等價(jià)于z=6+9;而寫成z=(6-8,9);等價(jià)于z=6-8+9 ;直接代入
還有就是 :#define Uint unsigned int 即用 Uint 代替unsigned int 便于書寫,還有就是不同操作系統(tǒng)的通用變量識(shí)別
宏定義的基礎(chǔ)知識(shí)。引用宏定義時(shí),直接代入進(jìn)行代換。
既然已經(jīng)宏定義SUB(a) (a)-(a),而程序中出現(xiàn)的對(duì)應(yīng)a的是a+b,那么就將a換為a+b代入表達(dá)式:
d=SUB(a+b)*c=(a+b)-(a+b)*c=(2+3)-(2+3)*5
直接用(a+b)-(a+b)代換SUB(a+b)。這一點(diǎn)和數(shù)學(xué)是不同的,不要強(qiáng)行往數(shù)學(xué)上靠。
宏定義又稱為宏代換、宏替換,簡(jiǎn)稱“宏”。
是C提供的三種預(yù)處理功能的其中一種。
1、宏名一般用大寫。
2、使用宏可提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。例如:數(shù)組大小常用宏定義。
3、預(yù)處理是在編譯之前的處理,而編譯工作的任務(wù)之一就是語法檢查,預(yù)處理不做語法檢查。
4、宏定義末尾不加分號(hào)。
5、宏定義寫在函數(shù)的花括號(hào)外邊,作用域?yàn)槠浜蟮某绦?,通常在文件的最開頭。
6、可以用#undef命令終止宏定義的作用域。
7、宏定義可以嵌套。
8、字符串" "中永遠(yuǎn)不包含宏。
9、宏定義不分配內(nèi)存,變量定義分配內(nèi)存。
在C語言源程序中,允許用一個(gè)標(biāo)識(shí)符來表示一個(gè)字符串,稱為宏,宏定義是由源程序中的宏定義命令完成的,宏替換是由預(yù)處理程序自動(dòng)完成的。宏定義是C提供的三種預(yù)處理功能的其中一種,這三種預(yù)處理包括:宏定義、文件包含、條件編譯。
擴(kuò)展資料:
宏(Macro),是一種批量處理的稱謂。計(jì)算機(jī)科學(xué)里的宏是一種抽象,它根據(jù)一系列預(yù)定義的規(guī)則替換一定的文本模式。
計(jì)算機(jī)語言如C語言或匯編語言有簡(jiǎn)單的宏系統(tǒng),由編譯器或匯編器的預(yù)處理器實(shí)現(xiàn)。C語言的宏預(yù)處理器的工作只是簡(jiǎn)單的文本搜索和替換,使用附加的文本處理語言如M4,C程序員可以獲得更精巧的宏。
參考資料:
宏定義百度百科
C語言中的宏定義用法分為兩種。
1、不帶參數(shù)的宏定義比較簡(jiǎn)單,就是用一個(gè)指定的標(biāo)識(shí)符來代表一個(gè)字符串。它的一般形式為“#define 標(biāo)識(shí)符 字符串”,例如#define E 2.718281828459。這種方法使用戶能以一個(gè)簡(jiǎn)單的名字代替一個(gè)長(zhǎng)的字符串。
2、帶參數(shù)的宏定義不是僅僅進(jìn)行簡(jiǎn)單的字符串替換,還要進(jìn)行參數(shù)替換。其定義的一般形式為;“#define 標(biāo)識(shí)符(宏名)(參數(shù)表) 字符串”,字符串中包含在括號(hào)中所指定的參數(shù)。例如#define S(a,b) a*b area=S(3. 2)。
擴(kuò)展資料:
宏定義只占編譯時(shí)間,函數(shù)調(diào)用則占用運(yùn)行時(shí)間(分配單元,保存現(xiàn)場(chǎng),值傳遞,返回),每次執(zhí)行都要載入,所以執(zhí)行相對(duì)宏定義會(huì)較慢。
使用宏定義次數(shù)多時(shí),宏定義展開后源程序很長(zhǎng),因?yàn)槊空归_一次都使程序增長(zhǎng),但是執(zhí)行起來比較快一點(diǎn)(這也不是絕對(duì)的,當(dāng)有很多宏定義展開,目標(biāo)文件很大,執(zhí)行的時(shí)候運(yùn)行時(shí)系統(tǒng)換頁頻繁,效率就會(huì)低下)。而函數(shù)調(diào)用不使源程序變長(zhǎng)。