關(guān)于define

關(guān)于define

1.用預(yù)處理指令#define聲明一個(gè)常數(shù),用以表示一年中有多少秒(忽略閏年問題)

define SECONDS_PER_YEAR (60 60 24 *365)UL (UL為無符號(hào)長(zhǎng)整形)

2.寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)

define MIN(A,B)   ( (A) >=(B) ? (A) : (B) )

define定義的宏和const定義的常量有什么區(qū)別

答:

  • define定義宏的指令,程序會(huì)在預(yù)處理階段將用define所定義的內(nèi)容進(jìn)行替換,因此程序在運(yùn)行時(shí),常量表中并沒有用define定義的宏,系統(tǒng)并不為它分配內(nèi)存,而且在編譯時(shí)不會(huì)檢查數(shù)據(jù)類型,出錯(cuò)的概率會(huì)大一些。
  • 而用const定義的常量,在程序運(yùn)行時(shí)是存在常量表中,系統(tǒng)會(huì)為他分配內(nèi)存,而且在編譯時(shí)會(huì)進(jìn)行類型檢查。
  • 在使用define有一個(gè)注意點(diǎn),就是要注意define的邊緣效應(yīng)。
  • define在預(yù)處理階段進(jìn)行替換,const常量在編譯階段使用
  • 宏不做類型檢查,僅僅進(jìn)行替換,const常量有數(shù)據(jù)類型,會(huì)執(zhí)行類型檢查
  • define不能調(diào)試,const常量可以調(diào)試
  • define定義的常量在替換后運(yùn)行過程中會(huì)不斷地占用內(nèi)存,而const定義的常量存儲(chǔ)在數(shù)據(jù)段只有一份copy,效率更高
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 注:這是第三遍讀《C語言深度解剖》,想想好像自從大學(xué)開始就沒讀完過幾本書,其中譚浩強(qiáng)的那本《C語言程序設(shè)計(jì)(第四版...
    HavenXie閱讀 1,922評(píng)論 1 6
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,691評(píng)論 1 51
  • 早上夢(mèng)見你,你瘦了,留著長(zhǎng)頭發(fā),當(dāng)時(shí)好像跟你的老師在說話。忘了你拿一袋什么東西,你進(jìn)去辦公室后,我也跟你進(jìn)去了,你...
    嚴(yán)重強(qiáng)迫癥的CXTING閱讀 272評(píng)論 0 0
  • 一支香煙 被一個(gè)男人拈起 點(diǎn)燃,優(yōu)雅地享用 他開始吞云吐霧 指間燃燒的香煙 殷紅色跳動(dòng)的心 一點(diǎn)一點(diǎn)燒透渾身 一些...
    Love_999閱讀 606評(píng)論 0 7
  • 佛言:因觸生貪,緣貪有愛。因愛有取,是故有有。緣有有生,是故老死呈現(xiàn)。若無有觸,則不生貪,無有貪則不生愛。於愛不取...
    慈勤閱讀 847評(píng)論 0 0

友情鏈接更多精彩內(nèi)容