bit 和sbit的区别

video_wang   2008-7-19 16:34 楼主
学习C51的时候
不太明白bit和sbit的区别

谢谢

回复评论 (3)

sbit位寄存器是可位寻址的绝对地址目标,定义后编译器是不会改变位置的。
bit是编译器在的可寻址区分配的一个位变量,是不定的,不是绝对地址目标。
所有可位寻址的位都可由sbit指定,这包括可位寻址区和SFR中的位。
点赞  2008-7-19 18:05
。。。。说实话,弄了这么多年我也不知道这个问题,看来要看看书了
点赞  2008-7-21 08:31
bit和sbit都是C51扩展的变量类型。

bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。

sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
点赞  2008-7-21 10:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复