易百教程

76、枚举和宏有什么区别?

枚举和宏的区别:

  • 与宏相比,枚举增加了代码的可读性并且易于调试。
  • 枚举的所有元素组合在一起,宏是不可能的。

示例:

//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 遵循范围规则,编译器会自动将值分配给其成员常量。
  • 枚举类型是整数,但宏类型可以是任何类型。