第21課 宏定義與使用

本文均來自狄泰軟件學院,謝絕轉載


#define定義的宏常量本質爲字面量(不佔用內存)


const常量,是隻讀變量(c語言),佔用內存



宏表達式與函數的對比

*宏表達式被預處理器處理,編譯器不知道宏表達式的存在

*宏表達式用“實參”完全替代形參,不進行任何運算

*宏表達式沒有任何的“調用”開銷

*宏表達式中不能出現遞歸定義


對於宏而言,是沒有作用域限制的(定義完宏,後面直接使用)因爲編譯器不知道宏定義標識符的存在,它是由預處理器處理的。


宏        含義                          示例

_FILE_    被編譯的文件名                file1.c

_LINE_    當前行號                      25

_DATA_    編譯時的日期                  Jan 31 2012

_TIME_    編譯時的時間                  17:01:01

_STDC_    編譯器是否遵循標準C規範        1



小結

預處理器直接對宏進行文本替換

宏使用時的參數不會進行求值和運算

預處理器不會對宏定義進行語法檢查

宏定義時出現的語法錯誤只能被編譯器檢測

宏定義的效率高於函數調用

宏的使用會帶來一定的副作用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章