sbit和bit

[复制链接]
4393|19
 楼主| 风溪香士 发表于 2013-2-28 13:57 | 显示全部楼层 |阅读模式
我定义了两句话
unsigned char bdata status_value;
sbit rx_dr=status_value^6;
如果把sbit换做bit就会出错,错误为PROJECT35_1.C(48): error C247: non-address/-constant initializer
这是为什么呢?
yewuyi 发表于 2013-2-28 14:04 | 显示全部楼层
你所使用的C编译器没有扩展bit指令,该编译器扩展的位操作指令是sbit,所以使用bit则报错。
 楼主| 风溪香士 发表于 2013-2-28 14:07 | 显示全部楼层
yewuyi 发表于 2013-2-28 14:04
你所使用的C编译器没有扩展bit指令,该编译器扩展的位操作指令是sbit,所以使用bit则报错。 ...

我用的是keil,keil有bit吧。
yewuyi 发表于 2013-2-28 14:12 | 显示全部楼层
KEIL扩展的位指令应当就是sbit
dirtwillfly 发表于 2013-2-28 14:27 | 显示全部楼层
楼上正解。
楼主如果非要用bit,也可以自己扩展一下
yewuyi 发表于 2013-2-28 15:27 | 显示全部楼层
如果非要用,可以自己做个转义宏。

#define  bit  sbit
uet_cache 发表于 2013-2-28 18:00 | 显示全部楼层
sbit是指定位操作寄存器的某位定义,BIT是定义的BIT变量。
uet_cache 发表于 2013-2-28 18:01 | 显示全部楼层
BIT是位变量类型,两者不同,BIT定义的变量,直接赋0或1.SBIT定义的变量要对寄存器的。
如sbit A=P0^0;
bit B=0;
bit C=1;
ayb_ice 发表于 2013-3-1 07:59 | 显示全部楼层
sbit用于定义字节中的某一位
而bit直接定义位,与字节没有直接关系
是有明显区别的
daocaoya 发表于 2013-3-1 08:20 | 显示全部楼层
uet_cache 发表于 2013-2-28 18:01
BIT是位变量类型,两者不同,BIT定义的变量,直接赋0或1.SBIT定义的变量要对寄存器的。
如sbit A=P0^0;
bit ...

正解
wsnsyy 发表于 2013-3-1 10:07 | 显示全部楼层
新手學習了
coody 发表于 2013-3-1 14:38 | 显示全部楼层
sbit是定义一个指定的位(位地址固定),bit是定义一个位变量,KEIL编译时分配位地址
yy251745080 发表于 2013-3-1 14:45 | 显示全部楼层
想必楼主已经明白了
cz_kangjie 发表于 2013-3-1 17:04 | 显示全部楼层
coody 发表于 2013-3-1 14:38
sbit是定义一个指定的位(位地址固定),bit是定义一个位变量,KEIL编译时分配位地址 ...

答得好
 楼主| 风溪香士 发表于 2013-4-29 15:59 | 显示全部楼层
yewuyi 发表于 2013-2-28 14:12
KEIL扩展的位指令应当就是sbit

在keil中不是也可以用bit定义一个位变量来使用吗?
 楼主| 风溪香士 发表于 2013-4-29 16:07 | 显示全部楼层
uet_cache 发表于 2013-2-28 18:01
BIT是位变量类型,两者不同,BIT定义的变量,直接赋0或1.SBIT定义的变量要对寄存器的。
如sbit A=P0^0;
bit ...

也就是说sbit定义的数据依赖于一个寄存器或者一个bdata的变量,而bit就是和char、int一样的单独的变量?
 楼主| 风溪香士 发表于 2013-4-29 16:08 | 显示全部楼层
coody 发表于 2013-3-1 14:38
sbit是定义一个指定的位(位地址固定),bit是定义一个位变量,KEIL编译时分配位地址 ...

也就是说sbit定义的数据依赖于一个寄存器或者一个bdata的变量,而bit就是和char、int一样的单独的变量?
coody 发表于 2013-5-2 13:34 | 显示全部楼层
sbit定义的数据依赖于一个寄存器或者一个bdata的变量,而bit就是编译器自动定位在bdata里的某个位.
MCU_Jason 发表于 2013-5-2 16:57 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我命由我不由天!

13

主题

82

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部