C语言中enum的定义与用法

enum是C语言中有一个关键字

定义

enum 标识符 
{
      枚举数据表
}

小tip:

  1. 枚举型是预处理指令#define的替代
  2. 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量(无需int),元素之间用逗号,隔开。
  3. 枚举数据表的值都是整数。第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。也可以人为设定枚举成员的值,从而自定义某个范围内的整数。
  4. 枚举常量不是字符串,不能用%s方式输出字符串。
    eg
enum img
{
     WIDTH=5,
     HEIGHT=10
}

用法

一、一次定义多个常量。
比如说我们的程序中处理问题时与星期几有关,可能要将星期一转换为数字1,星期二转换为数字2,一直到数字7,在不用enum关键字的情况下,可以使用define来定义,但是大家会觉得很麻烦,因为你要一个一个的定义,星期的还好说,只有7天,如果是月份呢,一年有12个月份,那就要写12个define,非常的不方面,如果利用enum的话就会非常的方便。

#include<stdio.h>
 
enum week {Mon=1,Tue,Wed,Thu,Fri,Sat,Sun};
 
int main()
{
    printf("%d",Tue);
    return 0;
}

二、限定变量的范围
比如我们的应用程序中要处理有关月份的东西,显然月份只能取1-12中的某个数字,为了保证程序的正确性和健壮性,我们应该使用enum。

#include<stdio.h>
 
enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec};
 
int main()
{
    enum Month a =  Feb;
    printf("%d",a);
    return 0;
}

比如像这样,定义的枚举类型 a 的取值只能是那12个变量中的一个,如果赋予了其他的变量,编译器就会报错。error: conflicting types for ‘a’
关于变量的声明(其实与结构体类似)

  1. 在定义enum的同时,声明变量:
enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec} a,b;
  1. 定义完enum之后再声明变量:
enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec};
enum Month a =  Feb;

3.定义匿名的枚举变量
这样的话,只能使用a这一个枚举类型的变量,不能再定义其他的枚举类型。

enum  {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec} a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值