首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

枚举 枚举的定义 枚举顾名思义就是一一列举。 把可能的取值一一列举。 一周的星期一到星期日是有限的7天,可以一一列举。 性别有:男、女、保密,也可以一一列举。...枚举的优点 我们可以使用#define 定义常量,为什么非要使用枚举枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符比较枚举有类型检查,更加严谨。...防止了命名污染(封装) 便于调试 使用方便,一次可以定义多个常量 联合体(共用体) 联合体的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间 (所以联合体也叫共用体...(un)); 联合体的变量是共用同一块空间的 联合体的计算 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。...以上就是自定义类型中的枚举联合体的介绍以及用法解释,自定义类型的使用是十分灵活的,需要我们好好领悟,要是文章有哪些错误,希望各位在评论区可以指正,我们一起进步!

45420

联合体类型和枚举类型

联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。...对于联合体的各个成员都是从联合体的首个字节开始进行存储(像联合体这种包含多个数据的类型内部都是从低地址到高地址进行存储,数组,结构体这种包含多个数据的也是同理)。从而会共用同一块内存空间。..., SECRET }; enum Color//颜⾊ { RED, GREEN, BLUE }; 枚举跟前面的结构体和联合体完全不同。...枚举依然能像结构体和联合体一样在;前面创建变量(创建类型的同时创建变量) 这大概就是枚举的主要知识点,当然它还有更多的细节,对于这些细节我就不讲了(实在有点多),这里有篇好文我推荐下,大家可以去看下C...总结 所以目前我们就讲解完了联合体枚举 。 下一篇将给大家讲解动态内存管理。 谢谢大家!!!

7410
您找到你想要的搜索结果了吗?
是的
没有找到

C语言学习系列->联合体and枚举

现在,小编将枚举联合体笔记分享给大家。枚举联合体与结构体一样,都是自定义类型,在学习完枚举联合体后,C语言中自定义类型也就告一段落啦。...联合体 概述 联合体也是自定义类型,关键字为union,特点是所有成员共⽤同⼀块内存空间,因此,联合体也叫做共用体。...概述 枚举,顾名思义,列举 将有限个,一 一列举出来,这就是枚举类型 声明 enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun }...便于调试,预处理阶段会删除 #define 定义的符号 使⽤⽅便,⼀次可以定义多个常量 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤ 使用 enum Color//颜色 { RED=...1, GREEN=2, BLUE=4 }; enum Color clr = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。

7110

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

,也叫枚举常量。...枚举的优点 我们可以使用#define 定义常量,为什么非要使用枚举枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符比较枚举有类型检查,更加严谨。...防止了命名污染(封装) 便于调试 使用方便,一次可以定义多个常量 联合体(共用体) 联合体的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间 (所以联合体也叫共用体...(un)); 联合体的变量是共用同一块空间的 联合体的计算 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。...以上就是自定义类型中的枚举联合体的介绍以及用法解释,自定义类型的使用是十分灵活的,需要我们好好领悟,如果文章有哪些错误,希望各位在评论区可以指正,我们一起进步!

44630

自定义类型:联合体枚举类型(联合体与结构体的区别)

联合体: 一、联合体类型的声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。...所以联合体也叫:共用体。 给联合体其中一个成员赋值,其他成员的值也跟着变化。...联合体(union):不同于结构体,联合体不是存储所有成员,而是使用相同的内存空间来存储其所有成员。联合体的大小是其最大的成员的大小。在任何时候,联合体只保存其最大的成员的值。...: 一、枚举类型的声明​和定义 枚举顾名思义就是一一列举。...clr = GREEN;//使用枚举常量给枚举变量赋值​ 注意:在给枚举变量赋值的时候,只能用枚举常量(也就是这里的RED、GREEN、BLUE),不能使用这些常量所对应的值(也就是1、2、4),

7710

C语言从入门到实战——联合体枚举

联合体枚举 前言 C语言中,联合体(union)是一种特殊的数据类型,允许存储不同类型的数据在同一块内存空间中。...联合体的大小取决于其中最大的成员的大小,共享同一块内存空间的成员可以存储不同类型的数据。 联合体的定义方式与结构体类似,使用关键字union,后跟联合体的名称。...联合体的成员可以是任意类型的变量,包括基本数据类型、数组、指针等。 使用联合体时,可以使用成员访问运算符".“或指针运算符”->"来访问联合体的成员。...一、 联合体 1.1 联合体类型的声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最大的成员分配足够的内存空间。...联合体的特点是所有成员共用同一块内存空间。 所以联合体也叫:共用体。 给联合体其中一个成员赋值,其他成员的值也跟着变化。

5910

C语言学习——结构体_联合体_枚举用法直通

文章目录 一、结构体嵌套 二、结构体数组 三、联合体 四、枚举 五、C语言字节对齐 案例1 案例2: 六、typedef 一、结构体嵌套 #include // 出生日期:年月日 struct...pCID[i]).BirthDate.iMonth, (pCID[i]).BirthDate.iDay, (pCID[i]).cAddress); } return 0; } 结果如下: 三、联合体...在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(union),它的定义格式为: union 共用体名 { 成员列表...... }; 共用体有时也被称为联合或者联合体; 结构体和共用体的区别在于...ch; double d; }ud; 3、如果不再定义新的变量,也可以将共用体的名字省略: union { int i; char ch; double d; }ud,cd; 四、枚举...{ false, true } end_flag, match_flag; //定义枚举类型并声明了两个枚举型变量 方法三:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明

48510

打造坚实的基础:C语言的结构体、联合体枚举

; printf("%d\n", sizeof(struct S3)); 首先,double占八个字节,偏移量为0: char对齐数为1,放在一的倍数,对齐8 i对齐数为4,对齐在4的倍数上,12...我们来分析 c1为零偏移量,s3占十六个字节,但对齐位置则在8的倍数上即可, d对齐在8的倍数,从24开始 总大小为最大对齐数(8)的整数倍,最终大小为32 为什么会有内存对齐?...定义枚举 枚举通过关键字 enum 定义。...枚举成员的值 默认情况下,枚举的第一个成员的值是 0,后续成员的值依次递增。...; } 优点: 代码可读性:使用枚举可以使代码更清晰,更易于理解。 类型安全:枚举提供了一个类型安全的方法来表示一组整数值。 调试易用性:在调试时,枚举类型的值通常比整数更易于理解 感谢阅读!

8110

【C语言】自定义类型(结构体、位段、枚举联合体

枚举类型,其中的变量叫做枚举类型的可能取值,也叫枚举常量 其中每个枚举常量都是有他们自己的值的,如果你不给他们赋初值的话,默认从0开始,一次递增1。...当然如果你想要对他们定义的话,可以这样做 enum Color//颜色 { RED=1, GREEN=2, BLUE=4 }; 观察下面代码运行结果,可以看到这些枚举常量分别对应的值 这里要注意一点...四、联合体 (共用体 ) 4.1联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员共用一块儿空间(所以,顾名思义,联合体也叫共用体) 例如: //联合类型的声明...,变量所包含的成员的地址都是相同的,而且联合体类型的大小,是变量所包含的成员中类型所占字节数最大的数,种种迹象表明,联合体变量所包含的这些成员是共用一块空间的 一道面试题: 编程,用联合体判断当前机器的大小端字节序...,联合等自定义类型的相关知识,其中结构体和位段介绍时间较长,这两个部分也是重要的内容请大家耐心观看 剩下的枚举联合体大家可做了解,丰富自身的知识库,以后会深入讲解这部分的内容的

44630

自定义类型:结构体+枚举类型+联合体+(内存对齐原则)

枚举类型 顾名思义,就是一一列举 枚举类型的定义 enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun }; 其中定义的Day就是一个枚举类型...{}中的内容是枚举类型的可能取值,也叫枚举常量 。这些可能取值都是有默认值的,默认从0开始,逐个+1。当然也可以在最开始给定初值,但是在外面就不能改变了,因为这是一个常量。...枚举的好处 明明可以用 #define 代替,为什么还要用枚举呢? 1、增加代码的可读性和可维护性。 2、和 #define 定义的标识符相比,枚举有类型检查,更加的严谨。...因为枚举类型是封装在一个类型中,是局部变量。 4、便于调试。#define是不可调试的,在预处理阶段就已经改变。 5、便于使用,一次可以定义多个常量。

39730

【自定义类型详解】完结篇——枚举联合体(共用体)详解

这篇文章我们继续来学习C语言中的另外两种自定义类型——枚举和联合(共用体),一起来学习吧!!! 1. 枚举 枚举也是C语言中的一种自定义类型。...月份有12个月,也可以一一列举 我们想描述这些值,就可以使用枚举。 1.2 枚举类型的定义 那枚举类型应该如果定义呢?...联合体(共用体) 联合体也是一种特殊的自定义类型 2.1 联合类型的定义 那联合体要怎么定义呢?...我们看一下结果: 2.4 联合体大小的计算 在联合体的特点里我们已经知道: 一个联合体的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员) 我们在上面举的例子中的联合体大小就是它的最大成员的大小...,但是不是所有的联合体大小都是这样呢?

16010

联合体

通过两个问题作为学习联合体的记录 关键词是Union 使用方法和结构体基本无差别 唯一不同的是联合体的成员共用一块内存空间,而结构体是每个成员都有自己的空间 即Union \_Ua { int age...; char str; }Ua,*PUa; &Ua=&Ua.age = &Ua.str; 联合体的大小 typedef union _Ua { char str[17]; short a...struct { int b; char a; short c; double d; }st; }Ua,*PUa; 联合体的大小根据联合体中最大的成员变量来定...,同时联合体本身的大小必须是最大的数据类型的整数倍最大肯定是char str[17] 数据本身大小是17 同时他并不是最大数据类型double 的整数倍所以该联合体大小为3*8 = 24 如果字符数组改成...10的话 联合体大小是16 如何判断当前平台大小端 大端:高地址存放低位数据,低地址存放高位数据 小端:高地址存放高位数据,低地址存放地位数据 用什么方式存放的数据,必须用什么方式来读,否则就会出错

11610

联合体union的特征用其进行传输

联合体union的特征应用 1.1. 特征 1.2. 特征 2. 使用union进行串口/UDP等数据传输 2.1. 用union定义传输协议 2.2. 赋值&发送 2.3....联合体union的特征应用 1.1. 特征 在结构体(变量)中,结构的各成员顺序排列存储,每个成员都有自己独立的存储位置。联合(union)变量的所有成员共享同片存储区/内存。...UData x1 = {5}; //只有x1.a被初始化 //总共UData这种类型的变量占有的大小为 8 个字节 union中可以定义多个成员,union的大小由最大的成员的大小决定,如上文中所示的联合体类型...8个字节 int data5_int;//占4个字节 uint8 checkSum;//占1个字节 }ST_protocol;//一共占了21个字节 //用于传输的联合体变量...typedef union { char buf[21]; ST_protocol data; }UnData;//用于传输的联合体变量 #pragma pack

1.1K20

企业联合体的形式_企业联合体「建议收藏」

企业联合体定义 企业联合体定义: : 属于经济联合体的一种联合体表现形式 (最大经济联合体是欧盟) , 完全区别于 联合公司和战略合作伙伴的联合体, 具体是集团公司或者是交叉参股的公司组建 的一个企业...(联合体)。...企业联合体职能 企业联合体职能: : 企业联合体可具有独立的法人代表、 独立的品牌体系、 独立的运作系统, 企业联 合体也可以是整合资源、 共建平台的非独立企业联合体; 共同建设比如“联合采 购、技术研发...2、资源合作型: 是指无股权关系的联合体成员单位, 完全依托联合体资源平台, 有偿或无偿享受企业联合体提供的联合采购、技术研发、运营管理等优势资 源; 3、服务合作型:是指联合体成员,根据市场经济优惠法则...企业联合体具备条件 企业联合体具备条件: : 首先 首先, , 企业经济联合体拥有财产的经营管理权或所有权, 这是它作为经济实体的 决定性条件。

30730

【C语言笔记】联合体

答案是可以的,使用联合体就可以达到这样的目的。联合体也叫共用体,在C语言中定义联合体的关键字是union。...与结构体(struct)、枚举(enum)一样,联合体也是一种构造类型: ?...关于结构体与枚举的知识可查看往期笔记: 【C语言笔记】结构体 【C语言笔记】枚举 二、联合体变量的定义方法 创建联合和创建结构的方式相同,需要一个联合模板和联合变量。...三、初始化联合体 联合体的初始化与结构体不同,联合体只能存储一个值。...所有的寄存器被封装成联合体类型的,联合体里边的成员是一个32bit的整数一个结构体,该结构体以位域的形式体现。这样就可以达到直接操控寄存器的某些位了。

98520

【C语言】一篇文章深入解析联合体枚举且和结构体的区别

前言 联合体(union)是允许一个变量通过不同的接口访问内存的一种数据类型,表示一个变量可以存储不同类型的值,而枚举是使用enum关键字定义一组相关且互斥的整形常量集合。...本章阿森将和你学习联合体类型的声明,特点,有关大小的计算,还有枚举类型的声明,优点和使用。文章干货满满!学习起来吧!...联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。...在大括号{}内列出枚举类型的多个枚举常量,用逗号分隔。 变量是枚举类型的变量,可以直接使用枚举类型名或枚举常量初始化。...,允许用整数直接赋值 C++中枚举类型是独立类型,不允许用整数直接赋值,需要强制类型转换 总结 这次阿森和你一起学习联合体类型的声明,特点,然后进行相同成员的结构体和联合体对⽐,⼤⼩的计算,联合体应用

13810

C语言——联合体类型

一,什么是联合体 联合体也称共用体 像结构体一样,联合体也是由一个或者多个成员构成,这些成员的类型可以不同。但是,与结构体不同的是:联合体的所有成员共用一块内存空间。...(即:给联合体其中的一个成员赋值,其他成员的值也会跟着被改变) 二,联合体的声明 1,联合体类型的声明 C语言中联合体类型的定义形式: union 联合体名 { 成员项表列 }; 例如:...(我们定义一个同时由char和int型构成的联合体) union Un { char c; int i; }; (注意:分号不能丢) 2,联合体变量的创建 同结构体变量的创建类似,我们可以在声明联合体类型的同时创建变量...2)在声明联合体类型的同时创建变量 union Un { char c; int i; }u1; 对联合体成员的引用也与对结构体成员的引用相同 三,联合体的特点 1,联合体与结构体的对比 联合体的大部分与结构体相似...答案是:错误的 因为联合体的大小也要满足是最大对齐数的整数倍 ⭐换句话来说,联合体的大小要满足以下两个条件: 1,大于或等于最大的成员(至少要能装下最大的成员) 2,同时是最大对齐数的整数倍 对于上面的

5810
领券