枚举enum与#define 宏的区别?
生活随笔
收集整理的這篇文章主要介紹了
枚举enum与#define 宏的区别?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
枚舉enum與#define 宏的區別?
1)#define 宏常量是在預編譯階段進行簡單替換。枚舉常量則是在編譯的時候確定其值。
2)一般在編譯器里,可以調試枚舉常量,但是不能調試宏常量。
3)枚舉可以一次定義大量相關的常量,而#define 宏一次只能定義一個。
4)枚舉可以自增1,這樣不用每一個值都定義,而宏必須每個值都定義。
5)枚舉是一個集合,代表一類值,像你代碼中的顏色歸為一類,方便使用,而宏不能形成集合。
6)enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}ColorVal;
sizeof(ColorVal)是4,因為ColorVal是一個枚舉變量,而枚舉變量代表一個整數(如ColorVal = RED),而整數是4個字節。
1)#define 宏常量是在預編譯階段進行簡單替換。枚舉常量則是在編譯的時候確定其值。
2)一般在編譯器里,可以調試枚舉常量,但是不能調試宏常量。
3)枚舉可以一次定義大量相關的常量,而#define 宏一次只能定義一個。
4)枚舉可以自增1,這樣不用每一個值都定義,而宏必須每個值都定義。
5)枚舉是一個集合,代表一類值,像你代碼中的顏色歸為一類,方便使用,而宏不能形成集合。
6)enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}ColorVal;
sizeof(ColorVal)是4,因為ColorVal是一個枚舉變量,而枚舉變量代表一個整數(如ColorVal = RED),而整數是4個字節。
總結
以上是生活随笔為你收集整理的枚举enum与#define 宏的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: int *ptr=(int *)(a+1
- 下一篇: 深入理解C代码中的注释