C++中兩種定義常量的方法
阿新 • • 發佈:2019-02-20
常量是在程式執行時,不會被修改的量。
使用常量有以下幾個好處:
(1)增強程式的可讀性。
直接使用數字或是字串,程式設計師可能會忘記或是弄混其意思。而使用有
意義的常量代表這些數字或是字串,顯然會更能增加程式的可讀性。
如:#define ERROR 0,則在程式中使用 "return ERROR;"要比使用"return 0;"
更能讓人理解和明白。
(2)達到已改全改的目的
在程式中,倘若我們想要修改某一個使用頻繁但程式執行過程中又不改變
其值的變數。使用常量是最好的方法,如:MAXSIZE代表陣列的大小,
若#define MAXISZE 100,則以後需要修改陣列最大容量時,直接修改
#define MAXISZE 100就行,無需到處去尋找多有引用MAXISZE變數的地方。
(3)減少出錯率。
如果很多地方用到像PI(3.14159)這樣的常量,難保輸入錯誤,尤其複雜
的很長的字串時。使用常量則可以很好的減少這個錯誤。
在C++中,有兩種定義常量的方法:#define、const。
(1)const常量有資料型別,#define定義的巨集常量沒有資料型別。
編譯器會對const常量進行型別安全檢查。
而對#define只是在編譯前進行簡單字元替換,沒有型別安全檢查,並且在字元替
換可能會產生意料不到的錯誤(邊際效應) 。
(2)可以使用某些整合化除錯工具對const常量進行除錯,但無法對巨集常量進行除錯。
(3)#define定義的常量是全域性的,而在C++的類中,可能需要一些區域性的常量,這時只能使用const常量。