像int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体。 结构体变量 既然结构体是一种数据类型,那么就可以用它来定义变量。例如: struct stu stu1, stu2; 1. 定义了两个变量 stu1 和 stu2,它们都是 stu ...
解释如下结构体: 联合体 union 表示公用一个 4 字节的内存,并且定义了一个联合体变量 SoftKey,这个 联合体最大的好处就是在赋值或者清空时能够直观地清楚,不需要再引用联 合体的参数。如: CallRecordInfo info; 对info.SoftKey 的操作会影响联合体内部参数的值,并且数值一致。也 就是说,我们只要对 info.SoftK...
联合体是一种特殊的结构体,它只能同时存储一个成员的值。联合体的定义方式如下:union 联合体名 { 数据类型 成员名1; 数据类型 成员名2; // ...};例如,定义一个表示颜色的联合体:union color { int value; struct { unsigned char r; unsigned char g; unsigned char b; ...
C语言中构造类型一共有4种,它们分别是数组、结构体(struct)、共用体(union)、枚举类型(enum)。 一、结构体类型 1、什么是结构体 在C语言中,结构体指的是一种数据结构,是C语言中聚合数据类型的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为...
简介:C语言中经典的结构体和联合体共用实例 结构体 结构体占用的内存大小,首先和编译器的系统位数有关系,类似于CPU是 64 bits 还是 32 bits 的情形;其次,结构体需要考虑字节对齐的问题。 实际上占用的内存大小, 在 Linux 中可以 使用 sizeof 进行获取,默认为字节对齐的大小。
下面我们一起看一下结构体、联合体结合使用在C语言、嵌入式中的一些实用技巧。 1、应用于管理不同的数据 示例代码: enum DATA_PKG_TYPE { DATA_PKG1 = 1, DATA_PKG2, DATA_PKG3 }; struct data_pkg1 { // ... }; struct data_pkg2 {
1、首先定义一个结构体,内部包含联合体,如下; #defineMAX_SOFTKEY_LEN4 typedefenum { ENUM_TRANSFER, ENUM_CONFERENCE, ENUM_ANSWER, ENUM_HOLD, }KeyType; typedefstructtag_CallRecordInfo { charline;//currentrecordingline. unsignedcharstate;//currentmachinestate. ...
所有的寄存器被封装成联合体类型的,联合体里边的成员是一个32bit的整数及一个结构体,该结构体以位域的形式体现。这样就可以达到直接操控寄存器的某些位了。比如,我们要设置PA0引脚的GPAQSEL1寄存器的[1:0]两位都为1,则我们只操控两个bit就可以很方便的这么设置: ...
通过结构体数组,我们可以方便地管理多个具有相同结构的数据。 例如,我们可以定义一个学生结构体数组,通过数组下标可以访问和修改每个学生的信息。这在需要处理多个学生数据的场景中非常常见。 二、联合体的使用技巧 联合体是一种特殊的数据类型,它可以在同一内存空间中存储不同类型的数据。联合体的定义使用关键字union,...
struct(结构体)与union(联合体)是C语言中两种不同的数据结构,两者都是常见的复合数据类型,其区别主要体现在两个方面。 定义 结构体(struct) 在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结...