欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語言宏寫函數(shù) c語言宏函數(shù)怎么用

C語言-函數(shù)式宏

函數(shù)式宏(function-like macro)較之對象式宏可以進(jìn)行更復(fù)雜的代換。

成都創(chuàng)新互聯(lián)主營景寧畬族自治網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),景寧畬族自治h5小程序開發(fā)搭建,景寧畬族自治網(wǎng)站營銷推廣歡迎景寧畬族自治等地區(qū)企業(yè)咨詢

函數(shù)式宏 sqr 是在編譯時展開并填入程序的,因此 只要是能用雙目運算符 * 進(jìn)行乘法計算的數(shù)據(jù)類型,都能使用函數(shù)式宏 。

函數(shù)定義則需為每個形參都定義各自的數(shù)據(jù)類型,返回值的類型也只能為一種。就這點而言,函數(shù)較為嚴(yán)格。

函數(shù)為我們默默無聞地進(jìn)行了一些復(fù)雜處理,如:

而函數(shù)式宏所做的工作只是宏展開和填入程序,并不進(jìn)行上述處理。

根據(jù)以上特征, 函數(shù)式宏或許能使程序的運行速度稍微提高一點,但是程序自身卻有可能變得臃腫 。

函數(shù)式宏在使用上必須小心謹(jǐn)慎。例如, sqr(a++) 展開后 ((a++) * (a++)) 。每次展開, a 的值都會自增兩次。在不經(jīng)意間表達(dá)式被執(zhí)行了兩次,導(dǎo)致程序出現(xiàn)預(yù)料之外的結(jié)果,我們稱這種情況為宏的 副作用(side effect) 。

c語言宏定義如何用?用宏定義有什么優(yōu)點?

主要用于函數(shù)重定義,通用性,可以用一個變量符號替代另一個變量符號

格式:#define M(x,y) x+y

在主程序里寫入z=M(6,9);等價于z=6+9;而寫成z=(6-8,9);等價于z=6-8+9 ;直接代入

還有就是 :#define Uint unsigned int 即用 Uint 代替unsigned int 便于書寫,還有就是不同操作系統(tǒng)的通用變量識別

c語言關(guān)于宏定義、函數(shù)

宏定義的基礎(chǔ)知識。引用宏定義時,直接代入進(jìn)行代換。

既然已經(jīng)宏定義SUB(a) (a)-(a),而程序中出現(xiàn)的對應(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)。這一點和數(shù)學(xué)是不同的,不要強(qiáng)行往數(shù)學(xué)上靠。

標(biāo)題名稱:c語言宏寫函數(shù) c語言宏函數(shù)怎么用
鏈接URL:http://chinadenli.net/article32/ddodjpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google自適應(yīng)網(wǎng)站用戶體驗網(wǎng)站設(shè)計ChatGPT網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)