单片机中bit和sbit有什么区别?

如题所述

bit和sbit都是C51扩展的变量类型。
  sbit 要在最外面定义,就是说必须定义成外部变量.sbit定义的是SFR(特殊功能寄存器)的bit
  sbit更像是类型定义,不像是变量定义。
  sbit: 只是说明性说明
  bit 可以在外部或内部定义。
  bit和int char之类的差不多,只不过char=8位, bit="1位而已"。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。
  bit是编译器在的可寻址区分配的一个位变量,是不定的,不是绝对地址目标。
  所有可位寻址的位都可由sbit指定,这包括可位寻址区和SFR中的位。
  sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbit xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
  sbit位寄存器是可位寻址的绝对地址目标,定义后编译器是不会改变位置的。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-11
sbit映射到IO口(P1^1这种IO口的“位”)
bit在RAM中的可位寻址空间中,一般用作程序判断的标志位。

你可以认为它们一个对外(sbit),一个对内(bit)。本回答被提问者采纳
第2个回答  2010-01-28
sbit跟int一样是一种数据类型
即位
用sbit可以定义一个位变量
而bit则是用来强制转换比如(bit)a
第3个回答  2010-01-28
sbit 就是置1的意思。。。跟clr相反。。。

单片机中bit和sbit有什么区别?
3. 总结来说,sbit和bit的主要区别在于它们的地址来源和用途。sbit直接与I\/O端口相关联,而bit则是在内存中以位的形式存在,通常用于内部处理和逻辑判断。

bit与sbit定义的位变量有什么区别
定义方式、存储方式等区别。1、定义方式:“bit”是一种普通的位变量定义方式,用于表示一个单独的位。“sbit”是特殊功能寄存器位的缩写,用于表示一个特殊功能寄存器中的位。2、存储方式:“bit”类型的位变量通常使用一个字节(8位)的内存空间来存储,即使只需要一个位的存储空间。“sbit”类型的位...

请简述c51新增数据类型bit和sbit之间的区别
首先,明确回答问题:C51新增的数据类型bit和sbit之间的主要区别在于它们的存储方式和可寻址性。bit是C51单片机编程中特殊的数据类型,它用于定义一个位变量。在C51中,bit类型的数据通常被存储在单片机的内部RAM中,并且每个bit变量只占据一个二进制位,这使得bit类型非常适合于需要高效利用存储空间的场合。...

bit与sbit定义的位变量有什么区别
1. 定义方式:使用 "bit" 关键字定义的位变量是一个普通的位变量,它代表一个单独的位。而 "sbit" 关键字用于指定特殊功能寄存器中的一个位。2. 存储方式:"bit" 类型的位变量通常会在内存中占用一个完整的字节(8位),即使它只需要存储一个位。相比之下,"sbit" 类型的位变量则利用特殊功能...

单片机中bit和sbit有什么区别?
sbit更像是类型定义,不像是变量定义。sbit: 只是说明性说明 bit 可以在外部或内部定义。bit和int char之类的差不多,只不过char=8位, bit="1位而已"。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值...

C语言中sbit是什么意思,与bit有什么区别?
1.C语言中没有sbit关键字,这个是编译器里面的关键字。 sbit应该是keil c51中的关键字,表示位寄存器。一个端口8位,用这个关键字,可以单个位操作。2.bit和sbit都是C51扩展的变量类型。典型应用是:sbit P0_0=P0^0;\/\/即定义P0_0为P0口的第1位,以便进行位操作。bit和int char之类的差不多,...

sbitbit和sbit区别
在C51的扩展中,bit和sbit都是特殊的变量类型,但它们的使用方式和特性有所不同。sbit是一种特殊的变量类型,它要求在外部定义,即作为外部变量来使用。sbit实际上定义的是SFR(特殊功能寄存器)中的一个位,它更像是一个类型说明,而非普通变量的定义。相比之下,bit可以被定义在外部或内部,它与int...

单片机abit和sbit区别
1. bit和sbit都是C51扩展的变量类型,用于定义单片机中的位变量。2. sbit需要在最外面定义,即必须定义成外部变量。它用于指定SFR(特殊功能寄存器)的位。3. sbit的定义更多的是说明性的,它并不像bit那样是真正的变量定义。4. bit可以外部或内部定义,与int、char等类型相似,但bit只表示1位,而...

c 语言中 bit与sbit的区别
不是C语言里的,而是C51里面的。区别在于功能不同:bit:是变量类型,相当于boot 只占一个位,最多可定128个bit变量。sbit:是给可位寻址的变量(或特殊功能寄存器)的某一个位定个别名,不另占空间。

c语言中bit与sbit的区别
1. 在C语言中,"bit"和"sbit"的定义和使用场景存在显著差异。2. "bit"作为基本的数据单位,用于表示二进制位,其值只能是0或1。3. "sbit"则主要用于嵌入式编程,表示特殊的位字段,通常与硬件寄存器的特定位相关。4. "bit"是计算机信息处理的基础,是所有数据类型的组成部分。5. "sbit"在嵌入式...

相似回答