C语言 enum 枚举 注意要点

 

枚举定义的三种方式

1

#include <stdio.h>

enum ENUM_TEST 
{
  ENUM_EST1=1,
  ENUM_EST2,
    ENUM_EST3,
    ENUM_EST4,
    ENUM_EST5,
    ENUM_EST6,
    ENUM_EST7,
    ENUM_EST8,
    ENUM_EST9,
    ENUM_EST10,
};
int main()
{
    enum ENUM_TEST enum_test;
    enum_test = ENUM_EST10 + 1;
    printf("enum_test=%d\n", enum_test); 
    return 0;
}
结果:enum_test=11

2

#include <stdio.h>

enum
{
    ENUM_EST1=1,
    ENUM_EST2,
    ENUM_EST3,
    ENUM_EST4,
    ENUM_EST5,
    ENUM_EST6,
    ENUM_EST7,
    ENUM_EST8,
    ENUM_EST9,
    ENUM_EST10,

}ENUM_TEST;

int main()
{
    ENUM_TEST = ENUM_EST10 + 1;
    printf("enum_test=%d\n", ENUM_TEST); 
    return 0;
}
结果:enum_test=11

3

#include <stdio.h>

typedef enum
{
    ENUM_EST1=1,
    ENUM_EST2,
    ENUM_EST3,
    ENUM_EST4,
    ENUM_EST5,
    ENUM_EST6,
    ENUM_EST7,
    ENUM_EST8,
    ENUM_EST9,
    ENUM_EST10,
}ENUM_TEST;

int main()
{
    ENUM_TEST enum_test;
    enum_test = ENUM_EST10 + 1;
    printf("enum_test=%d\n", enum_test); 
    return 0;
}
结果:enum_test=11

注意1

1) 给枚举变量赋值,如果数值超过了枚举的取值范围,则结果是不确定的,如上述三个例子。

2)以(1)为基础,作如下改动:

enum_test = (enum ENUM_TEST)(4);

运行结果为4

如果设置ENUM_EST4=8, 此结果仍为4

注意2

最后一个枚举元素可以有“,”也可以没有

注意3

第一种用法,在声明enum_test变量时必须用enum ENUM_TEST 声明,而不能只用ENUM_TEST;在C++中两种都是可以的。

第一种用法和第三种用法,都是声明了一种类型;

第二种用法和第三种用法,虽然只相差一个typedef关键字,但意义确大不相同;第二种用法是声明了一个枚举变量,第三种用法是声明了一个枚举类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一马途追

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值