C++ 中,#define 和 const 關鍵字有什麼差別?
#define 指令是預處理指令;即預處理程式在編譯程式看到它之前,用宏體的各個部分替換這些宏。
const 變數宣告在語言中聲明瞭一個真正的變數,可將其當作一個真實的變數使用:獲取其地址、四處傳遞、強制轉換為其他型別、轉換等。
如果沒有編譯程式最佳化,在不同的情況下,宏定義和 const 變數都對應著記憶體分配的隱含成本。但是,使用適當的最佳化措施後,它們幾乎是一樣的。此外,預處理程式宏沒有任何作用域,而 const 值是有作用域的。
廣告