天天看點

const(常量)和#define(宏定義)差別

記錄面試題

編譯器處理不同

宏定義是一個編譯時的概念,在預處理階段展開,在編譯時把所有的宏定義值得地方用宏定義常量替換,不能對宏定義進行調試,生命周期結束于編譯時期;

const常量是一個運作是的概念,在程式運作時使用,類似一個隻讀資料塊。

存儲方式不同

宏定義是直接替換,不會配置設定記憶體,存儲在代碼段中;

const常量需要進行記憶體配置設定。

類型檢測

宏定義是字元替換,沒有類型檢測;

const常量聲明,需要類型檢測

const可以節省空間

宏咋代碼中會全部展開,如果過多使用宏會導緻代碼膨脹;

const不同,const隻在運作時有一份拷貝。

參考資料:

https://blog.csdn.net/sinat_20265495/article/details/52945960

https://www.nowcoder.com/questionTerminal/11692181b68642f89c11fa5b2413aaf1

繼續閱讀