C语言中sbit是什么意思,与bit有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/06/15 22:55:52
是在51单片机的C语言编程中

1.C语言中没有sbit关键字,这个是编译器里面的关键字。 sbit应该是keil c51中的关键字,表示位寄存器。一个端口8位,用这个关键字,可以单个位操作。

2.bit和sbit都是C51扩展的变量类型。典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。

这个只有在c51使用吧。
sbit 要在最外面定义,就是说必须定义成外部变量.sbit定义的是SFR(特殊功能寄存器)的bit
sbit更像是类型定义,不像是变量定义。
bit 可以在外部或内部定义。
分析编译前后的信息, sbit: 指示说明性说明 bit : 编译时分配空间
通俗一点讲就是:sbit 只能在外部定义全局变量。SFR(特殊功能寄存器)的bit。SFR是系统指定的内存地址。
bit 动态分配的,有编译器来指定内存地址。

sbit是位声明 bit是定义一个只有0和1状态的变量