常量是定以後,在程式執行中不能被改變的識別符號。c++中定義常量可以用#define 、const 這兩種方法。例如:
#define price 10 //定義單價常量10
const int price = 10; //定義單價常量10
其中#define是定義巨集變數,它其實是在編譯之前,由預處理指令把**裡面的巨集變數用指定的字串替換,它不做語法檢查,而const 則是定義含有變數型別的常量。一般說來推薦使用const定義常量,它在編譯時會做語法檢查。effective c++ 的條款1中:「盡量用編譯器而不用預處理」,因為#define經常被認為好象不是語言本身的一部分。而且有時候用巨集,會出現意想不到的輸出結果。
#define 與 const 的比較
(1) const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會產生意料不到的錯誤(邊際效應) 。
(2) 有些整合化的除錯工具可以對 const 常量進行除錯, 但是不能對巨集常量進行除錯。
在C 中定義常量的兩種方法的比較
常量是定以後,在程式執行中不能被改變的識別符號。c 中定義常量可以用 define const 這兩種方法。例如 define price 10 定義單價常量10 const int price 10 定義單價常量10 其實用常量是有它的理由的,下面我們來看下面兩段程式對比 include usin...
在C 中定義常量的兩種方法的比較
常量是定以後,在程式執行中不能被改變的識別符號。c 中定義常量可以用 define const 這兩種方法。例如 define price 10 定義單價常量10 const int price 10 定義單價常量10 其中 define是定義巨集變數,它其實是在編譯之前,由預處理指令把 裡面的巨集...
c 在C 中定義常量的兩種方法的比較
常量是定以後,在程式執行中不能被改變的識別符號。c 中定義常量可以用 define const 這兩種方法。例如 define price 10 定義單價常量10 const int price 10 定義單價常量10 其實用常量是有它的理由的,下面我們來看下面兩段程式對比 include usin...