打印
[应用相关]

使用union能够帮助我们减少内存占用——使用 union 的基本示例

[复制链接]
227|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米多0036|  楼主 | 2024-6-11 15:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在嵌入式系统开发中,特别是像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可以分别作为整数、浮点数和字符串使用,但是同一时刻只能存储其中一个值。这意味着只分配了一块内存,大小等于最大成员的大小。

使用特权

评论回复
沙发
EmmaTT| | 2024-6-18 22:35 | 只看该作者
这个不能同时存储

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

1189

帖子

0

粉丝