enum(枚举) 的C 用法

首先为什么要用enum  呢?

来看这个例子:

enum  { CLUBS, DIAMONDS, HEARTS, SPADES}  SUIT;

我们知道枚举默认的值是首值为0并依次加1,所以我们就清楚的用0,1,2,3代替了牌的四种花色,而且枚举是一开始就要定义好的,所以不能到了后面需要加一个数值“5”的时候又声明一个变量这样处理,因此枚举也就让我们一目了然的知道了“牌只有4种花色”,到了后面要使用这四种花色时,只要用枚举时的常量名就可以了(一般我们都会给它定义一个有意义的常量名)相比如此,也可以使用宏来定义:

#define SUIT              int

#define CLUBS           0

#define DIAMONDS  1

#define HEARTS        2

#define  SPADES       3

但是宏是替换,在预编译时期就已经被替换掉了,我们在调试的时候就没办法使用这些有意义的名字了。

而一开始我们可能想到的更多的是这样:

int CLUBS = 0,  DIAMONDS = 1,  HEARTS = 2, SPADES = 3;

可以看的到这样是与枚举差不多的,但是由于开始讲到的灵活性,我们不知道有多少种,所以在可读性上就会差很多了,而且,可以给一整个枚举命名,enum  { CLUBS, DIAMONDS, HEARTS, SPADES}  SUIT;这里的枚举就叫SUIT,所以在后面就可以区分为SUIT S1,S2这样创建多个同类型的枚举变量了。

此外,还可以这样用:

#include<stdio.h>
int main()
{
    enum  { CLUBS = 3, DIAMONDS, HEARTS, SPADES}  SUIT;
    

    printf("enum are  \n%d \n%d \n%d \n%d\n",CLUBS, DIAMONDS, HEARTS, SPADES);

    return 0;

}

输出将会是这样:

enum are

3
4
5

6

可以看得出,依旧是依次递增,所以命名多个连续递增的常量时,用枚举会简洁很多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值