基于嵌入式的电池电量显示代码_学习嵌入式C编程语言中的联合数据对象

本文介绍了嵌入式C中的联合数据结构,与结构的区别在于联合内的成员共享内存空间。通过举例说明,阐述了在电池电量显示等场景下,如何利用联合节省内存和通信带宽,降低数据传输成本。
摘要由CSDN通过智能技术生成

嵌入式C中结构与联合的区别

在本系列的前一篇文章中,我们讨论了嵌入式C中的结构允许我们对不同数据类型的变量进行分组,并将它们作为单个数据对象处理。除了结构之外,C语言还支持另一种称为联合的数据结构,它可以将不同的数据类型分组为单个数据对象。本文将提供有关联合的一些基本信息。我们首先来看一下声明一个union的介绍性例子,然后我们将研究这个数据对象的一个重要应用。

介绍性实例

声明联合和声明结构非常类似。我们只需要将关键字“struct”替换为“union”。请考虑以下示例代码:

union test {

uint8_t c;

uint32_t i;

};

这指定了一个具有两个成员的模板:“c”(占用一个字节)和“i”(占用四个字节)。现在,我们可以创建此联合模板的变量:

union test u1;

使用成员运算符(.),我们可以访问“u1”联合的成员。例如,以下代码将10分配给上述联合的第二个成员,并将“c”的值复制到“m”变量(必须是uint8_t类型)。

u1.i=10;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值