永发信息网

keil中结构体变量能定义位变量吗

答案:2  悬赏:20  手机版
解决时间 2021-03-01 03:48
  • 提问者网友:几叶到寒
  • 2021-02-28 04:16
keil中结构体变量能定义位变量吗
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-02-28 05:23
标准C的结构体只支持位域(Bit Field)。使用起来是通过掩码或移位实现的,代码效率不高。
如果你想实现类似于(unsigned char型变量的最高位也是个bit变量、可以直接访问)这样的需求,可以借助Keil扩展的bdata以及sbit功能实现。
全部回答
  • 1楼网友:深街酒徒
  • 2021-02-28 06:14
keil的结构体与标准c的结构体一样,想实现位变量只能通过位域(bit field),也就是楼上贴出来的那一大堆。 需要注意的是位域其实是通过对结构体变量反复进行按位运算取出的,执行效率上比较低下。如果你期望实现效率很高的位成员操作,对于51而言可以利用bdata,对于cortex-m3核而言可以利用位绑定映射(bit-banding)。 “位结构是c51语言中的一种特殊结构,” 这句话比较搞笑。位域是标准c的内容,不是c51的独创。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯