在嵌入式系统开发中,特别是像STM32这样资源受限的微控制器,内存优化是非常关键的。union 是一种C语言结构,可以在同一块内存空间上存储不同类型的数据,从而实现变量空间的优化利用。使用union能够帮助我们减少内存占用,以下是一些具体的示例和技巧:
使用 union 的基本示例
一个简单的 union 示例:
c
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data data;
data.i = 10;
printf("data.i : %d\n", data.i);
data.f = 220.5;
printf("data.f : %f\n", data.f);
strcpy(data.str, "C Programming");
printf("data.str : %s\n", data.str);
return 0;
}
在这个示例中,data可以分别作为整数、浮点数和字符串使用,但是同一时刻只能存储其中一个值。这意味着只分配了一块内存,大小等于最大成员的大小。
|