C语言枚举类型

宏和枚举都可以将变量换一个别名

对比:

宏    枚举 差别 作用时期 存储形式
宏    预处理阶段 替换,程序运行 不存在
枚举 程序运行 后 起作用,枚举常量 存储 数据段 静态存储区里。
宏 占 代码段 空间,枚举 占空间 耗CPU资源。
若定义非常多的常量 一条enum {.....} 比大堆define更清晰

定义别名 :

预处理指令#define来完成这项工作,您的代码可能是:
#define U32 unsigned int
#define U16 unsigned short
#define S32 int
#define S16 short int
#define U8  unsigned char
#define S8  char

enum [ 枚举名 ] { 枚举元素列表 }
enum GPIO
{
    GPIOA=0,
    GPIOB,
    GPIOC,
    GPIOD,
    GPIOE,
    GPIOF,
    GPIOG
};
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2) GPIO是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。
(5) 枚举型是预处理指令#define的替代。
(6) 类型定义以分号;结束。

typedef定义一个新的数据类型:GPIO_typedef
typedef enum
{
    GPIOA=0,
    GPIOB,
    GPIOC,
    GPIOD,
    GPIOE,
    GPIOF,
    GPIOG
}GPIO_typedef;

在使用枚举变量时,主要关心的不是它的值的大小,而是其表示的状态。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值