找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6006|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

bit和sbit他們有什么區(qū)別?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:108736 發(fā)表于 2016-3-31 13:59 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
bit : 編譯時分配空間
       sbit 只能在外部定義全局變量。
       sfr(特殊功能寄存器)的bit。SFR是系統(tǒng)指定的內(nèi)存地址。
  bit 動態(tài)分配的,有編譯器來指定內(nèi)存地址。
  bit和sbit都是C51擴(kuò)展的變量類型。
  sbit 要在最外面定義,就是說必須定義成外部變量.sbit定義的是SFR(特殊功能寄存器)的bit
  sbit更像是類型定義,不像是變量定義。
  sbit: 指示說明性說明
  bit 可以在外部或內(nèi)部定義。
  bit和int char之類的差不多,只不過char=8位, bit="1位而已"。都是變量,編譯器在編譯過程中分配地址。除非你指定,否則這個地址是隨機(jī)的。這個地址是整個可尋址空間,RAM+FLASH+擴(kuò)展空間。bit只有0和1兩種值,意義有點(diǎn)像Windows下VC中的BOOL。
    bit是編譯器在的可尋址區(qū)分配的一個位變量,是不定的,不是絕對地址目標(biāo)。
  所有可位尋址的位都可由sbit指定,這包括可位尋址區(qū)和SFR中的位。
  sbit是對應(yīng)可位尋址空間的一個位,可位尋址區(qū):20H~2FH。一旦用了sbi xxx = REGE^6這樣的定義,這個sbit量就確定地址了。sbit大部分是用在寄存器中的,方便對寄存器的某位進(jìn)行操作的。
  sbit位寄存器是可位尋址的絕對地址目標(biāo),定義后編譯器是不會改變位置的。

評分

參與人數(shù) 1黑幣 +35 收起 理由
暗光 + 35

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:109865 發(fā)表于 2016-3-31 15:57 來自手機(jī) | 只看該作者
能不舉些例子
回復(fù)

使用道具 舉報

板凳
ID:111620 發(fā)表于 2016-3-31 16:23 | 只看該作者
sbit是常量 bit是分配內(nèi)存的吧
回復(fù)

使用道具 舉報

地板
ID:111634 發(fā)表于 2016-3-31 18:10 | 只看該作者

bit用于定義80C51片內(nèi)RAM 20H~2FH的普通位變量,可作為某一函數(shù)內(nèi)的局部變量(在該函數(shù)內(nèi)定義),也可作為全局變量(在主函數(shù)之前定義)。例如:
bit  x;  //定義位變量x。編譯器將在80C51位尋址區(qū)20H~2FH分配一個位單元
sbit用于定義特殊功能寄存器中可尋址位的位變量,具有既定位地址,屬于全局變量,必須放在主函數(shù)之前。例如:
sbit  y= P1^0;  //定義y為P1.0,P1.0具有既定位地址90H
兩者不能混淆使用。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表