写一个联合体union中包含一个U32类型的数和一个结构体的数组 并且在声明的时候初始化
时间: 2024-03-10 10:43:19 浏览: 183
结构体数组的定义-第9、10章 结构体、联合体、枚举、位运算
这是一个包含一个 U32 类型的数和一个结构体数组的联合体,并在声明时进行初始化的示例代码:
```
#include <stdio.h>
typedef struct {
int x;
int y;
} Point;
typedef union {
uint32_t u32;
struct {
Point points[3];
} data;
} MyUnion;
int main() {
MyUnion u = {.data = {{ {1, 2}, {3, 4}, {5, 6} }}};
printf("u.u32 = %u\n", u.u32);
printf("u.data.points[0].x = %d, u.data.points[0].y = %d\n", u.data.points[0].x, u.data.points[0].y);
printf("u.data.points[1].x = %d, u.data.points[1].y = %d\n", u.data.points[1].x, u.data.points[1].y);
printf("u.data.points[2].x = %d, u.data.points[2].y = %d\n", u.data.points[2].x, u.data.points[2].y);
return 0;
}
```
上面的代码中,我们首先定义了一个 Point 结构体表示一个二维点。然后定义了一个包含一个 U32 类型的数和一个结构体数组的联合体 MyUnion。结构体数组中包含 3 个 Point 结构体。在 main 函数中,我们声明了一个 MyUnion 类型的变量 u,并在初始化时指定了 3 个 Point 结构体的值。最后我们打印了这些值以验证联合体的正确性。
阅读全文