枚举和宏的区别:
- 与宏相比,枚举增加了代码的可读性并且易于调试。
- 枚举的所有元素组合在一起,宏是不可能的。
示例:
//constant created by macro,
#define MON 0
#define TUE 1
#define WED 2
#define THU 3
#define FRI 4
#define SAT 5
#define SUN 6
//constant created by enum,
typedef enum Days
{
Mon,
Tue,
Wed,
Thu,
Fri,
Sat,
Sun
} Weekday;
- enum 定义了一个新类型,但宏没有定义一个新类型。
- enum 遵循范围规则,编译器会自动将值分配给其成员常量。
- 枚举类型是整数,但宏类型可以是任何类型。