[讨论] 结构体 位段

雪枫21   2016-11-14 11:58 楼主
单片机的资源不是很多,在使用结构体的时候,除了考虑到结构体对齐的问题以外,结构体还有位段的方式,但是实际应用中几乎没有看到使用的,也可能是我看的程序比较少,在这里想向大家请教一下,大家有这么用的吗?结构体的位段方式应用时有什么弊端吗?欢迎大家一起讨论,各抒己见啊!!!
每天进步一点点 博采众长,回馈大众!!

回复评论 (4)

如果不差那几个字节的RAM的话,真没必要在这个地方节省空间。
位域用法在书写、阅读、运行效率方面都是劣势。
那种RAM、ROM不足几K的单片机,还是用汇编节省空间。
点赞  2016-11-14 12:26
MDK 下可以使用 __attribute__((bitband)) 方便地进行Cortex-M3所提供的位区(bitband)操作
再配合 #pragma anon_unions  就可以实现整体赋值或者位赋值

举个例子 用stm32吧 不贴代码了 这是别人的 截个图 位域.png

访问位成员:pe = USART1_SR.PE;
访问整体:sr = USART1_SR.Value;

这样的效果 有什么用? 比库函数快 比直接操作寄存器要更理性化

更多的可以自行谷歌搜索






天地庄周马;江湖范蠡船。 个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
点赞  2016-11-14 12:50
51单片机这些可以声明位bit变量的,感觉不需要位域
stm32/LoRa物联网:304350312
点赞  2016-11-14 13:49
省data,费code。
在通讯数据的合包、解包过程中,位段可以提升代码可读性(用位段描述寄存器中的功能位,也是同样的道理)

本人喜欢用
要666
点赞  2016-12-12 17:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复