C語言深度剖析 列舉

2021-06-07 16:46:41 字數 323 閱讀 6751

列舉與#define巨集的區別 

1),#define 巨集常量是在預編譯階段進行簡單替換。列舉常量則是在編譯的時候確定其值。 

2 ),一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量。 

3 ),列舉可以一次定義大量相關的常量,而#define 巨集一次只能定義乙個。 

列舉能做到事,#define 巨集能不能都做到?如果能,那為什麼還需要列舉?

一方面列舉可以集中管理資料,具有相同屬性的整形資料可以使用列舉存放;另外列舉可以實現「取值的自增」(當然也可以指定每個列舉的值),編寫**更容易,減少出錯的機會,後續維護時如果需要新增乙個資訊無需計算該資訊取值。

C語言深度剖析

c語言深度剖析 1,編譯器通常不為普通const唯讀變數分配儲存空間,而是將他們儲存在符號表中,使得它成為乙個編譯期間的值,沒有了儲存與讀記憶體的操作,使得它的效率更高。2,const int p p可變,p指向的物件不變。int const p p可變,p指向的物件不可變 int const p ...

C語言深度剖析

什麼是資料型別?資料型別是建立變數的模具 資料型別是建立變數的模具 型別的本質 資料型別可理解為固定記憶體大小的別名 資料型別的本質是固定記憶體大小的別名 變數本質 變數是一段實際連續儲存空間的別名 型別和變數的關係 vim program.c include int main gcc progra...

《C語言深度剖析》筆記

c語言深度剖析 筆記 1.在c語言中,凡不加返回值型別限定的函式,就會被編譯器作為返 回整形處理。2.register 變數必須是乙個單個的值,並且其長度應小於或等於整型 的長度。而且 register 變數可能不存放在記憶體中,所以不能用取 址運算子 來獲取 register變數的位址。3.int...