顿悟!原来struct和enum本质上都是一个集合

先说结论:strcut是各种基本数据类型变量的集合,相当于把一堆相关变量的声明放在一个篮子;enum是字符变量的集合,相当于把一堆#define定义的字符变量放在了一个篮子。例如如下代码:

学生的姓名、性别、年龄和成绩等变量是和学生本人相关的,我们把他打包放到一个“篮子”结构体struct中。

//声明一堆学生信息的变量
    char name[30];      //姓名
    char sex;           //性别
    int age;            //年龄
    float score;        //成绩



//把这堆学生信息的变量打包放到“篮子”里
struct Student
{         
    char name[30];      //姓名
    char sex;           //性别
    int age;            //年龄
    float score;        //成绩
};//声明结构体

系统的各种状态等字符常量是和系统相关的,我们把他打包放到一个“篮子”枚举enum中,省去了反复书写#define的麻烦。

//使用#define定义一堆系统相关的字符常量
#define  DAT_RST          0x01         //系统复位信息
#define  DAT_SYS_STS      0x02         //系统状态
#define  DAT_SELF_CHECK   0x03         //系统自检结果
#define  DAT_CMD_ACK      0x04         //命令应答
  
#define  CMD_RST_ACK          0x80     //模块复位信息应答
#define  CMD_GET_POST_RSLT    0x81     //读取自检结果


//把这堆系统相关的字符常量打包放到“篮子”里
enum SysID
{
  DAT_RST         = 0x01,         //系统复位信息
  DAT_SYS_STS     = 0x02,         //系统状态
  DAT_SELF_CHECK  = 0x03,         //系统自检结果
  DAT_CMD_ACK     = 0x04,         //命令应答
  
  CMD_RST_ACK     = 0x80,         //模块复位信息应答
  CMD_GET_POST_RSLT = 0x81,       //读取自检结果
};

注意:因为struct中是变量的集合,所以每个变量后面都要加“;”这个语句结束标志;而enum中是常量的集合,所以后面要加“,”隔开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值