深入理解C語言 define巨集和列舉的區別

2021-06-04 07:28:22 字數 420 閱讀 6598

(1)從處理過程的角度看:

#define巨集是由編譯預處理器在預編譯處理時處理的,而且只做簡單的字串的替換。列舉常量則是在編譯的時候確定其值的。

(2)從除錯的角度看:

通常情況下,在編譯器裡,可以除錯列舉常量,而不能除錯巨集常量。

(3)從資料的型別看:

#define可以編譯任意型別的常量,而列舉只能是定義整型常量。

(4)從**編寫角度看:

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

(5)從可維護性來看:

列舉可以集中管理資料,具相同屬性的整形資料可使用列舉,列舉可實現取值的自增,也可指定每個列舉的值,編寫**跟容易,相對來說能減少出錯的機會,也便於**的後期維護和修改。

(6)列舉的取值範圍已經限定了,容易進行引數的檢查,而define沒有這種檢查

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

C語言指標深入理解

前幾天看了乙個程式,裡面一段關於指標的 讓我非常糾結,看了很久才看懂,在這裡將將其記錄下來,希望能對大家有一定的幫助,先看示例程式 編譯器gcc include include include typedef struct list node list node,list,plist node st...