[51单片机] 求助51单片机bit变量的存储区域

[复制链接]
180|8
 楼主 | 2018-12-6 16:28 | 显示全部楼层 |阅读模式
求助51单片机定义位变量应该定义在哪个区域?data 还是idata 还是 xdata ????
| 2018-12-6 16:43 | 显示全部楼层
bit bMyflag; //ok
uchar bdata cMyFlag;
sbit bMyFlag0 = cMyFlag ^ 0;//0k
bMyflag = 1;
bMyFlag0 = 0;
| 2018-12-6 22:09 | 显示全部楼层
在 data的20-2F的某一位里面,从20.0开始。
如果只是本地的一个局部变量,用的时候在PSW.CY里面,如果用完就不用了,中间没有数学和逻辑运算,可能优化后只有CY里面有。
bit类型的变量不能超过128个。bit类型不能有数组。
如果在结构体里,要用 char i:1; 这种位域是没有限制的。
| 2018-12-6 22:37 | 显示全部楼层
data (20-2FH)区域
| 2018-12-6 22:37 | 显示全部楼层
data (20-2FH)区域
| 2018-12-7 14:08 | 显示全部楼层
一般就用位域,总感觉直接bit占一个字节
| 2018-12-10 14:57 | 显示全部楼层
一叶倾城wwq 发表于 2018-12-7 14:08
一般就用位域,总感觉直接bit占一个字节

怎么可能呢
| 2018-12-11 08:35 | 显示全部楼层

我也不知道是什么时候有的这个感受,等下我再验证下,对了,我记得是在哪儿看到:说keil编译器原本是没有bit这个类型的,引入标准(库文件)之类的产生的结果就是占一个字节?
| 2018-12-11 08:51 | 显示全部楼层
一叶倾城wwq 发表于 2018-12-11 08:35
我也不知道是什么时候有的这个感受,等下我再验证下,对了,我记得是在哪儿看到:说keil编译器原本是没有b ...

如果你只用一个BIT,确实要占一个字节,剩余的7个BIT只能空着,因为BIT也是字节的一个位,后面再定义7个BIT仍只占一个字节
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /8 下一条

快速回复 返回顶部 返回列表