不是C语言里的,而是C51里面的。
区别在于功能不同:
bit:是变量类型,相当于boot 只占一个位,最多可定128个bit变量。
sbit:是给可位寻址的变量(或特殊功能寄存器)的某一个位定个别名,不另占空间。
扩展资料:
单片机中C语言sbit使用方法——
1、bit位标量。
bit位标量是c51编译器的一种扩充数据类型,利用它可以定义一个位标量,但是不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0或1,类似boolean中的true和false。
2、sfr特殊功能寄存器。
sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255.利用它可以访问51单片机内部的所有特殊功能寄存器。如果sfr P1 = 0x90,这一句定P1为P1端口在片内的寄存器,在后面的语句中我们可以用P1=255(对P1端口的所有的引脚置高电平)之类的语句来操作特殊功能寄存器。
sfr是定义8位的特殊功能寄存器而sfr16 则是定义16位特殊功能寄存器。
bit 是声明一个位变量的,定义单片机端口的是sbit.
如:
sbit led=P2^1 //定义引脚P2.1为led
bit flag //声明一个位变量