列舉enum與 define 巨集的區別

2021-08-03 19:40:31 字數 373 閱讀 7052

列舉enum與#define 巨集的區別?

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

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

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

4)列舉可以自增1,這樣不用每乙個值都定義,而巨集必須每個值都定義。

5)列舉是乙個集合,代表一類值,像你**中的顏色歸為一類,方便使用,而巨集不能形成集合。

6)enum color

colorval;

sizeof(colorval)是4,因為colorval是乙個列舉變數,而列舉變數代表乙個整數(如colorval = red),而整數是4個位元組。

列舉與結構enum

使用 enum 來建立列舉。有如類和其他命名型別,列舉可以有方法。enum rank int let ace rank.ace by gashero let acerawvalue ace.toraw 在如上例子中,原始值的型別是 int 所以可以只指定第乙個原始值。其後的原始值都是按照順序賦值的。...

const常量與 define巨集

define 巨集定義語句 在預處理階段直接做文字替換,不做型別檢查。const c 1 處理時間不同 define所定義的巨集變數在預編譯 預處理 的時候進行替換,const 變數在編譯時確定其值。2 對於 const 變數,系統只在其定義時分配一段記憶體空間,而 define 則是給出了乙個立即...

enum列舉的意義

一直沒怎麼用過列舉enum,因為不會用,也不知道他的優點在何處,今天仔細看了看,以後要學著用了,很有必要 看一些資料說列舉有助於減少buge,比較好奇,專門了解了下,原因如下 列舉型別是強型別的,從而保證了系統安全性。列舉可以限定引數的個數,對呼叫者的行為能更加嚴格地進行控制。把一些執行期的引數檢查...