0%

C++PrimerPlus_4.6枚举enum

1. 4.6 枚举

C++的枚举enum工具可以创建符号常量,和const的作用相同。

例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// spectrum 成为新类型的名称,被称为枚举(enumeration)
// red,orange,yellow被称为符号常量,被称为枚举量(enumerator)

enum spectrum {red,orange,yellow};
// 同等于
const int red = 0;
const int orange = 1;
const int yellow = 2;

// 可以用枚举名来生命这种类型的变量
spectrum band;
band = blue;

int color = orange; // valid

1.1. 设置枚举量的值

1.1.1. 可以显式的设置

指定的值必须是整数

1
enum bits {one = 1, two = 2, four = 4};

1.1.2. 只显式的定义其中一些

1
enum bigstep {first, second = 100, third};

first在默认情况下为0,后面没有被初始化的值将比其前面的枚举值大1,因此third=#01。

1.1.3. 可以创建多个值相同的枚举值

1
enum {zero, null = 0, one, numero_one = 1};

1.2. 枚举的取值范围

enum bigstep {first, second = 100, thrid};为例子:

  • 上限:找到bigstep最大值,他的最小2次幂减去一。这里最大值third=101,最小二次幂为128,因此取值上限是127。
  • 下限:如果最小值大于0,那么取值下限为0;否则采用和上面一样的方法,但是加上负号。假如最小的枚举量为-6,那么比他小、最大的2次幂为-8,因此下限为-7。
-------------本文结束感谢您的阅读-------------