用C语言写一个联合体,包含一个uint8的整数,一个结构体
时间: 2024-12-19 21:28:57 浏览: 7
uint8array:验证值是否为 Uint8Array
在C语言中,可以创建一个联合体(union)同时包含一个`uint8_t`类型的整数和一个自定义结构体。联合体的特性是所有成员共用同一块内存空间,所以你可以通过联合体的名字切换访问不同类型的数据。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdint.h> // 包含uint8_t
// 定义一个结构体作为联合体的一部分
struct MyStruct {
uint8_t num;
char name[5];
};
union UnionExample {
uint8_t singleByte;
struct MyStruct structData;
};
int main() {
union UnionExample unionObj;
// 初始化联合体为整数值
unionObj.singleByte = 42;
printf("As an integer: %u\n", unionObj.singleByte);
// 切换到结构体部分
unionObj.structData.num = 100;
strcpy(unionObj.structData.name, "Test");
printf("As a structure: num=%u, name='%s'\n", unionObj.structData.num, unionObj.structData.name);
// 注意,联合体内只会存储最后一个赋值的数据,其他成员将失去其值
return 0;
}
阅读全文