51单片机中 bit和sbit区别

举报
一颗小树x 发表于 2020/12/03 23:10:50 2020/12/03
【摘要】                              51单片机中 bit和sbit区别   回顾C语言发现在单片机中有bit sbit sfr 等一些类型!   问题:什么是bit和sbit?他...

                             51单片机中 bit和sbit区别

 

回顾C语言发现在单片机中有bit sbit sfr 等一些类型!

 

问题:什么是bit和sbit?他们有什么区别?

  bit : 编译时分配空间

       sbit 只能在外部定义全局变量。

       sfr(特殊功能寄存器)的bit。SFR是系统指定的内存地址。

  bit 动态分配的,有编译器来指定内存地址。

  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。一旦用了sbi xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。

  sbit位寄存器是可位寻址的绝对地址目标,定义后编译器是不会改变位置的。

文章来源: guo-pu.blog.csdn.net,作者:一颗小树x,版权归原作者所有,如需转载,请联系作者。

原文链接:guo-pu.blog.csdn.net/article/details/83223152

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。