【C语言-进阶】枚举与联合详解

枚举

首先老规矩枚举是什么

枚举顾名思义就是一一的列举出来,把我们能想到的每一种可能性都列举出来。
给大家举个例子一周的星期一到星期日可以列举,国家的名字可以列举性别有男女月份日期都可以类似于这样的常见类型都可一一列举这就是枚举
代码举例:

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

上面所定义的就是枚举常量(Mon Tues and so on)enum Day 也就是枚举类型
***这里我们要记住枚举的字节大小是个四个字节

为什么用枚举

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

如何用枚举(怎么做)

枚举的使用代码

enum Color
{
 RED=1,
 GREEN=2,
 BLUE=4
};
enum Color clr=GREEN;

这里要强调的就是枚举只能拿上面已经列举过的值进行定义例如RED如果输出就会是1下来如果没有自己定义那么就会一次的增加

enum Color
{
 RED=1,
 GREEN,
 BLUE
};

例如这样GREEN就会等于2 BLUE就会等于3.

联合(共用体)

联合是什么

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

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

为什么用联合体

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

怎么用联合体

例如大小端判定

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
union Un
{
	int i;
	char c;
};
int main()
{
	union Un u;
		u.i = 1;

		if (u.i == 0x01)
	{
		printf("min\n");
	}
	else
	{
		printf("max\n");
	}
	return 0;
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值