zl程序教程

您现在的位置是:首页 >  其他

当前栏目

枚举以及联合体--C语言版

2023-02-25 18:17:40 时间

枚举的定义

枚举顾名思义就是一一列举。 把可能的取值一一列举。 一周的星期一到星期日是有限的7天,可以一一列举。 性别有:男、女、保密,也可以一一列举。 月份有12个月,也可以一一列举

enum Day//星期
{
        Mon,
        Tues,
        Wed,
        Thur,
        Fri,
        Sat,
        Sun
};

{}中的内容是枚举类型的可能取值,也叫枚举常量。

枚举的优点

我们可以使用#define 定义常量,为什么非要使用枚举? 枚举的优点:

  1. 增加代码的可读性和可维护性
  2. 和#define定义的标识符比较枚举有类型检查,更加严谨。
  3. 防止了命名污染(封装)
  4. 便于调试
  5. 使用方便,一次可以定义多个常量

联合体(共用体)

联合体的定义

联合也是一种特殊的自定义类型
这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间
(所以联合体也叫共用体)

联合体的特点

//联合类型的声明
union Un
{
char c;
int i;
};
//联合变量的定义
union Un un;
//计算联合变量的大小
printf("%d\n", sizeof(un));

联合体的变量是共用同一块空间的

联合体的计算

联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。

以上就是自定义类型中的枚举、联合体的介绍以及用法解释,自定义类型的使用是十分灵活的,需要我们好好领悟,如果文章有哪些错误,希望各位在评论区可以指正,我们一起进步!