宏定義注意事項

宏定義

為一段代碼定義一個標(biāo)識, 在編譯之前將使用宏名的地方替換為宏值,這個替換的過程叫宏替換也叫宏代換

#define 宏名 宏值
#define typeLength 10
#define Max(a,b) a > b ? a : b

注意:

  1. 宏值可以是任意 C 代碼,在定義宏的時候,并不會檢查語法,只有在宏替換的時候才檢查語法
  2. 宏值如果是表達(dá)式,最好用括號括起來,因為在宏替換的時候可能會出現(xiàn)運(yùn)算符優(yōu)先級的問題
  3. 宏值里如果使用了變量名,一定在使用的時候,保證該變量已定義
  4. 宏名不是變量, 不能通過賦值符號去改變值
  5. 宏可以定在任意的地方(方法內(nèi)和方法外),如果定義在方法內(nèi),出了大括號也可以使用,因為它不是變量。 宏從定義開始到文件結(jié)束,都是可以使用??梢允褂?#undef typeLength 來使宏失效
  6. 不要和 typedef 搞混哈~ 給類型起別名和預(yù)處理指令的宏定義沒關(guān)系哈~
  7. 帶參數(shù)的宏,不需要寫形參的類型
  8. 宏值里面有換行的話, 就代表這個宏的定義結(jié)束了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語閱讀 4,044評論 0 7
  • 宏定義在C系開發(fā)中可以說占有舉足輕重的作用。底層框架自不必說,為了編譯優(yōu)化和方便,以及跨平臺能力,宏被大量使用,可...
    你好自己閱讀 1,125評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 今參加超星慕課培訓(xùn),通過技術(shù)實現(xiàn)課前、課中、課下、課外的多方位一體化教學(xué)。由于超星本身就具有豐富的資源,比當(dāng)年使用...
    津城燕窩Donna閱讀 1,527評論 0 0
  • 《七月與安生》電影版的結(jié)局是,七月產(chǎn)后大出血死了,生命永遠(yuǎn)停留在了27歲。安生獨自撫養(yǎng)七月的孩子,卸下濃妝艷抹,燙...
    源本小姐閱讀 8,220評論 82 116

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