为了账号安全,请及时绑定邮箱和手机立即绑定

C++中enum的用法

C++中enum的用法

C++
红糖糍粑 2019-10-16 13:09:56
如果定义枚举的时候没有定义枚举名,那么这个定义的作用是不是就和#define是一样的?比如:enum{A = 0,B = 1,C = 2};是否就相当于#define A 0#define B 1#define C 2这样的定义?
查看完整描述

4 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

enum是C++中的枚举类型,以一系列字符串,来表示整型数字,起到更方便阅读维护代码的效果。

1 enum的定义:

enum 的定义形式如下:

1

2

3

4

5

6

7

enum enum_name

{

    enum_value1,

    enum_value2,

    ...

    enum_valuen

};

如果没有定义enum变量的需求,enum_name可以省略。

在以上形式下,第一个值,enum_value1, 默认值为0,以下各条分别为上一条加一。

如果要改变enum的第一个值,或enum各个项值不连续,可以写作

1

2

3

4

5

6

7

8

9

10

enum enum_name

{

    enum_value1= -100,

    enum_value2,

    ...

    enum_valuem = 1234,

    enum_valuem1,

    ...

    enum_valuen

};

其中显式赋值的enum项,实际值就是显式赋值的值。其它项仍遵从上一项加一的原则。

于是在这个例子中,enum_value2 = -99, enum_valuem1 = 1235。

2 enum 变量的定义:

定义一个变量的格式为

enum enum_type var = init_value;

定义一个enum_type为类型的变量var, 并初始化为init_value. 其中=init_value部分可以省略。

3 enum项的使用。

enum各个项使用方法类似于无参宏定义。在需要某值的地方,引用对应项即可。

var = enum_value1;

 



查看完整回答
反对 回复 2019-10-17
?
三国纷争

TA贡献1804条经验 获得超7个赞

你这个定义完全没有意义啊,枚举是定义一种类型,你可以用这个类型名来定义变量的,比如说你定义的enmu x 你后面直接可以用x来定义变量了,如x a;这样定义的结果就是a的取值只能取A,B,C,,而你里面的0,1,2只是给ABC指定序号而已,和宏定义完全两回事。

查看完整回答
反对 回复 2019-10-17
?
SMILET

TA贡献1796条经验 获得超4个赞

不是,枚举类型可以用来定义变量,这点上说,它和int差不多,只不过每一个数值被赋予了特殊的含义,这样的好处是不容易出错,也不容易出现魔数,即让人无法理解的各种数字
最常用的好处是限定了数据,避免了类似(0代表失败,1代表成功,却发现数据是2)的情况。
枚举类型可以定义枚举类型变量,而宏不行,甚至于你的那几个宏会影响到正常程序(例如有个变量正好叫A)

查看完整回答
反对 回复 2019-10-17
  • 4 回答
  • 0 关注
  • 1234 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信