C51變量類型

C51變量類型

ID:40716585

大?。?7.88 KB

頁數(shù):3頁

時間:2019-08-06

C51變量類型_第1頁
C51變量類型_第2頁
C51變量類型_第3頁
資源描述:

《C51變量類型》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫

1、C51變量運算符在C51中與標準的C語言并沒有什么差異,但是變量卻有一些比較關鍵的區(qū)別。變量的數(shù)據(jù)類型基本變量類型與標準C語言,C51的基本數(shù)據(jù)類型有char、int、short、long和float。除float外均可以使用signed和unsigned指定有符號型和無符號型,默認情況下都是signed。char占用一個字節(jié),int和short都占2個字節(jié),long占4個字節(jié),float占4個字節(jié)。其它數(shù)據(jù)類型指針類型:指針與標準C中的指針概念相同,指向一個特定的地址(地址存放的可以是變量也可以是函數(shù))。例如:intfunc(i

2、nta,intb);int(*pointer)(int,int)=func;其它數(shù)據(jù)類型:enum、struct、union以及數(shù)組。C51專有數(shù)據(jù)類型:bit、sfr、sfr16以及sbit。bit變量存儲在可位尋址區(qū),保存一位二進制數(shù)。注:不能用指針指向位變量。sfr和sfr16指的是特殊寄存器變量。sbit聲明的是可位尋址變量的一個位??晌粚ぶ返淖兞烤褪谴鎯υ赽data的變量,以及部分sfr。例如:intbdatabitTest;sbitbit0=bitTest^0;例子中的bit0就是bitTest的第0位。變量的作用域C

3、51的變量分為局部變量和全局變量。變量的存儲種類auto:默認register:編譯器盡量將變量放在寄存器中。extern:全局變量,可以在多個文件中使用。static:使得局部變量的壽命與程序相同;使得全局變量只在文件內(nèi)有效。變量的存儲區(qū)域這個是C51與標準C語言區(qū)別很明顯的地方。C51中可以指定變量存儲在具體的存儲器區(qū)域內(nèi):例如片內(nèi)RAM、片外RAM、或者是ROM里。例如:chardatatest='c';定義test變量存儲在直接尋址的內(nèi)部RAM區(qū)。具體的存儲區(qū)域如下表:存儲類型存儲區(qū)域data片內(nèi)直接尋址RAMidata片

4、內(nèi)間接尋址RAMpdata分頁尋址的片外RAMxdata片外數(shù)據(jù)存儲(64K)code片內(nèi)統(tǒng)一編址ROM(64K)bdata片內(nèi)可位尋址的RAM(128位)指針與存儲區(qū)域與變量相同,我們也可以指定指針的存儲區(qū)域,以及指針所指向的變量的存儲區(qū)域。指明了所指向變量的具體存儲區(qū)域的指針效率要更高一些,占用的存儲區(qū)也少一些(三字節(jié)一字節(jié))。例如:chardata*str1;//指針指向data存儲區(qū)的字符變量chardata*datastr2;//指針本身也在data區(qū)域絕對地址的變量在C51中,可以另變量存儲在存儲器中的特定地址。這是通

5、過“_at_”關鍵字實現(xiàn)的。例如:chardatatest_at_0x100;不過需要注意的是,絕對地址的變量具有如下要求:·不能初始化·bit類型不能用絕對地址·只有全局變量才可以使用絕對地址

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。