【备战春招】第2天 嵌入式工程师学习笔记
课程信息
- 课程名称:物联网/嵌入式工程师
- 章节名称:第3周之第二讲 2-4 C语言中的联合体
- 讲师姓名:大白老师
课程内容概述
1. 简介
本节介绍了联合体和结构体的定义形式类似,但是它是所有的成员共享同一块内存空间。共用最大的一块内存。
2. 联合体
2.1 使用方法
union 共用体名
{
类型 成员1;
类型 成员2;
};
例如:
union stu
{
char a;
int b;
short c;
};
union stu s1;
printf("len : %d\n",sizeof(s1)); ===> 4
2.2 代码示例
#include <stdio.h>
typedef struct
{
unsigned char Red;
unsigned char Green;
unsigned char Blue;
}RGB_t;
typedef union
{
RGB_t rgb;
unsigned int value;
}PIX_t;
int main()
{
//1. 定义一个PIX_t类型的变量,然后定义三原色分别为0X11、0X22、0X33,
PIX_t color;
RGB_t rgb;
color.rgb.Red = 0X11;
color.rgb.Green = 0X22;
color.rgb.Blue = 0X33;
//2. 不做任何处理,直接打印value。
//3.观察结果
printf("%#x\n", color.value);
}
运行结果
0x332211
学习心得
C语言中的共用体和结构体的异同点
<1>相同点
都是构造类型,含有多个成员,访问成员的规则一样
<2>不同点
结构体的每个成员都拥有独立空间
共用体的多个成员共用同一块内存空间,分配的空间最大成员所占用的内存。