这里把struct data_pkg1、struct data_pkg2、struct data_pkg3三个结构体放到了struct data_pkg这个结构体里进行管理,把data_pkg_type与union里的三个结构体建立一一对应关系,我们需要用哪一结构体数据就通过data_pkg_type来进行选中。在进行数据组包的时候,先给data_pkg_type进行赋值,确定数据包的类型,再给对应...
// 第一个结构体struct Date{int day;int month;int year;};// 第二个结构体嵌套了第一个结构体struct Person{char name[100];struct Date birthday;// 嵌套使用 Date 结构体作为生日float height;}; 在上面的代码中,我们有两个结构体Date和Person。Person结构体中有一个Date类型的成员birthday,这就构成了...
3️⃣结构体总大小:成员变量中最大对齐数(每个成员变量都有一个对齐数)的整数倍 4️⃣如果嵌套了结构体的情况: 嵌套的结构体以自己结构体中成员变量中的最大对齐数为嵌套结构体的对齐数,然后再对齐到外面结构体对应的嵌套结构体最大对齐数的整数倍处 外面结构体的整体大小就是所有最大对齐数(含嵌套结构...
结构体(Struct): 是一种构造类型或复杂类型,可以包含多个类型不同的成员。 在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(union),它的定义格式为: union 共用体名 { 成员列表… }; 共用体有时也被称为联合或者联合体; 结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有...
嵌套结构体(Nested Structures)在这个例子中,我们定义了一个Date结构体,它包含了日期的日、月和年。然后,我们在Person结构体中嵌套了Date结构体,以表示一个人的姓名和出生日期。联合体(Unions)联合体允许在同一块内存空间中存储不同类型的数据。在这个例子中,我们定义了一个Data联合体,它可以存储整数、浮点...
下面我们一起看一下结构体、联合体结合使用在C语言、嵌入式中的一些实用技巧。 1、应用于管理不同的数据 示例代码: enum DATA_PKG_TYPE { DATA_PKG1 = 1, DATA_PKG2, DATA_PKG3 }; struct data_pkg1 { // ... }; struct data_pkg2 {
在C语言中定义联合体的关键字是union。 定义一个联合类型的一般形式为: union 联合名 { 成员表 }; 1. 2. 3. 4. 成员表中含有若干成员,成员的一般形式为:类型说明符 成员名。其占用的字节数与成员中最大数据类型占用的字节数。 下面我们一起看一下结构体、联合体结合使用在C语言、嵌入式中的一些实用技巧...
在C语言中,结构体(`struct`)和联合体(`union`)是用于组合多个不同类型的数据项的数据类型。它们在数据管理和内存优化方面非常有用。下面详细介绍结构体和联合体的定义、使用和区别。 1. 结构体(`struct`) 结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。结构体成员可以是任何有效的数据类型...
在C语言中,自定义类型是指程序员可以通过一系列的定义和说明来创建的新的数据类型。这些自定义类型可以是基本类型的组合或者是基于现有类型的扩展。包括数组在内,C语言的自定义类型有:数组,结构体,联合体,枚举 结构体 结构体是一些不同类型值的集合,这些值称为成员变量 ...
一、结构体的使用技巧 结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起,形成一个新的数据类型。结构体的定义使用关键字struct,通过定义结构体变量可以访问结构体中的各个成员。 1.嵌套结构体 嵌套结构体是指在一个结构体中定义另一个结构体变量作为成员。通过嵌套结构体,我们可以更好地组织和...