C 常量的定義

2022-09-08 10:12:09 字數 489 閱讀 7307

1、巨集定義

#define  demo  10

這種方式定義的常量,在編譯時,編譯器看不到demo這個名稱,在預處理的時候都被替換了。於是demo沒有進入符號表內,這樣,在運用此常量的地方出現編譯錯誤時,錯誤資訊不會提到demo,會導致難以定位錯誤資訊。另外在進行除錯時,也看不到demo名稱。

2、const常量定義

(1)const定義普通常量

const int demo = 10;                                    

const char* const pdemo = "hello world";  

const有內鏈結屬性,所以在標頭檔案中這樣定義常量時,不會出現多個編譯單元次引用標頭檔案時出現鏈結錯誤。並且一般的編譯器會給const變數只分配乙個儲存空間。

(2)const定義類專屬常量

class demo;

去const常量的位址是合法的,但是取enum的位址不合法。

C 使用之常量的定義

在介紹c 的常前,先看下下面的 for int i 0 i 512 i 512是什麼,它具有什麼含義?在 中若直接使用類似512這些 魔數 magic number 這些數字的具體含義就不能體現出來。另外,假如程式中多處包含512這個數,隨著時間的推移,發現有些512需要更改為1024,有些512需...

C 類中定義常量

在c 類中定義常量,有以下兩種方法 1.在類定義體內定義列舉常量 例如 class a 這樣定義出來的常量值在程式執行過程中是不能被修改的,編譯的時候就已經確定了這些常量的值 2.在類定義體中宣告使用static const來修飾成員常量,然後在類定義體外對這些成員進行初始化 也就是說在類定義體內定...

C 類中常量定義

有時我們希望某些常量只在類中有效。由於 define定義的巨集常量是全域性的,不能達到目的,於是想當然地覺得應該用const修飾資料成員來實現。const資料成員的確是存在的,但其含義卻不是我們所期望的。const資料成員只在某個物件生存期內是常量,而對於整個類而言卻是可變的,因為類可以建立多個物件...