C语言中sbit是啥意思,与bit有啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中sbit是啥意思,与bit有啥区别?相关的知识,希望对你有一定的参考价值。
是在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。 参考技术A sbit是位声明 bit是定义一个只有0和1状态的变量 参考技术B 这个只有在c51使用吧。
sbit 要在最外面定义,就是说必须定义成外部变量.sbit定义的是SFR(特殊功能寄存器)的bit
sbit更像是类型定义,不像是变量定义。
bit 可以在外部或内部定义。
分析编译前后的信息, sbit: 指示说明性说明 bit : 编译时分配空间
通俗一点讲就是:sbit 只能在外部定义全局变量。SFR(特殊功能寄存器)的bit。SFR是系统指定的内存地址。
bit 动态分配的,有编译器来指定内存地址。
参考资料:CSDN论坛
本回答被提问者采纳单片机中bit和sbit有啥区别?
参考技术A sbit映射到IO口(P1^1这种IO口的“位”)bit在RAM中的可位寻址空间中,一般用作程序判断的标志位。
你可以认为它们一个对外(sbit),一个对内(bit)。
以上是关于C语言中sbit是啥意思,与bit有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章