1. 程式人生 > >C++中兩種定義常量的方法

C++中兩種定義常量的方法

   常量是在程式執行時,不會被修改的量。

   使用常量有以下幾個好處:

    (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常量。