中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
帶參數(shù)宏與函數(shù)、內(nèi)聯(lián)函數(shù)比較(轉(zhuǎn)收藏)

宏:

優(yōu)點(diǎn):在編譯預(yù)處理階段完成,不占用編譯時(shí)間,同時(shí),省去了函數(shù)調(diào)用時(shí)間,運(yùn)行效率高。

缺點(diǎn):不進(jìn)行類(lèi)型檢查,多次宏替換會(huì)導(dǎo)致代碼體積變大,而且由于宏本質(zhì)上是字符串替換,故可能會(huì)由于一些參數(shù)的副作用導(dǎo)致得出錯(cuò)誤的結(jié)果。

函數(shù):

優(yōu)點(diǎn):進(jìn)行類(lèi)型檢查,計(jì)算正確性更有保證。

缺點(diǎn):函數(shù)調(diào)用需要參數(shù)、返回地址等的入棧、出棧開(kāi)銷(xiāo),效率沒(méi)有帶參數(shù)宏高。

PS:宏與內(nèi)聯(lián)函數(shù)的區(qū)別
      內(nèi)聯(lián)函數(shù)和宏都是在程序出現(xiàn)的地方展開(kāi),內(nèi)聯(lián)函數(shù)不是通過(guò)函數(shù)調(diào)用(中斷調(diào)用)實(shí)現(xiàn)的,是在調(diào)用該函數(shù)的程序處將它展開(kāi)(在編譯期間完成的);宏則是在預(yù)編譯期間做簡(jiǎn)單的替換。

     不同的是:內(nèi)聯(lián)函數(shù)可以在編譯期間完成諸如類(lèi)型檢測(cè),語(yǔ)句是否正確等編譯功能;宏就不具有這樣的功能,而且宏展開(kāi)的時(shí)間和內(nèi)聯(lián)函數(shù)也是不同的。

 

#define S(a,b) a*b

area=S(3,2)

int S(int a,int b)

{ int s;

  s=a*b;

  return(s);

}

這兩個(gè)有什么區(qū)別

#define S(a,b) a*b

area=S(3,2)

盡量少使用宏定義。宏定義是把S(a,b)簡(jiǎn)單地替換成a*b

這樣會(huì)產(chǎn)生問(wèn)題,最典型的兩種:

1.缺括號(hào),比如aera=S(x+y,x-y),會(huì)被替換成x+y*x-y

2.自增運(yùn)算符

定義宏

#define S(a) (a)*(a)

結(jié)果S(a++),變成(a++)*(a++)這個(gè)大家都知道,在不同編譯環(huán)境下會(huì)有不同結(jié)果。

也就是說(shuō),宏只是編譯前簡(jiǎn)單替換代碼內(nèi)容,而函數(shù)真正產(chǎn)生代碼。

宏是編譯期的,函數(shù)是運(yùn)行期的;

宏不是實(shí)體,而函數(shù)是一個(gè)可尋址的實(shí)體;

宏只是編譯期替換,在程序里每遇到S(a,b),就用a*b代替,a和b兩個(gè)實(shí)體并沒(méi)有由宏實(shí)際產(chǎn)生,而函數(shù)S會(huì)在棧中定義兩個(gè)對(duì)象a和b。

宏沒(méi)有生存期、作用域之類(lèi)的概念,而函數(shù)就有。

函數(shù)在運(yùn)行過(guò)程中會(huì)在棧中產(chǎn)生函數(shù)調(diào)用過(guò)程活動(dòng)記錄,而宏則沒(méi)有。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C語(yǔ)言的那些小秘密之預(yù)處理
C語(yǔ)言學(xué)習(xí)——預(yù)處理命名
一個(gè)宏定義看看你的 C語(yǔ)言級(jí)別
C語(yǔ)言中的宏定義
c語(yǔ)言宏定義、條件編譯
C/C 中幾個(gè)宏的簡(jiǎn)單總結(jié)
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服