當前位置:首頁 > 單片機 > 單片機
[導讀]在標準C語言中,存在著如下六種基本數(shù)據(jù)類型:1、char:字符型;2、short = short int:短整型3、int:整型4、long = long int:長整型5、float:單精度浮點型6、double:雙精度浮點型而面向51單片機的Keil uVision4

在標準C語言中,存在著如下六種基本數(shù)據(jù)類型

1、char:字符型;

2、short = short int:短整型

3、int:整型

4、long = long int:長整型

5、float:單精度浮點型

6、double:雙精度浮點型

而面向51單片機的Keil uVision4對此進行了簡化, 因此,可以理解為只存在如下四種基本數(shù)據(jù)類型:

1、char:字符型

2、int = short = short int:整型

3、long = long int:長整型

4、float = double:單精度浮點型

其中,基本整型數(shù)據(jù)類型又可以通過signed關(guān)鍵詞擴展為有符號的signed char、signed int、signed long類型,或通過unsigned關(guān)鍵詞擴展為無符號的unsigned char、unsigned int、unsigned long類型;而對于不加關(guān)鍵詞擴展的char、int、long本身,Keil uVision4則一律認為是signed類型。

應(yīng)對51單片機硬件的一些特點,Keil uVision4還擴展了bit、sbit、sfr、sfr16等四種特殊基本數(shù)據(jù)類型,它們都是標準C中所沒有的。其中:

1、bit:聲明一個普通的位變量。例如:"bit flag;"。

2、sbit:聲明特殊功能寄存器中的某一位。例如,使用"sbit TI = SCON^0;",就聲明了TI為特殊功能寄存器SCON的第0位。

3、sfr:聲明一個8位寄存器為特殊功能寄存器。例如,將51單片機內(nèi)存地址0x98處的存儲單元聲明為8位特殊功能寄存器SCON,可以使用"sfr SCON = 0x98;"語句。

4、sfr16:聲明一個16位的寄存器為特殊功能寄存器。為了將51單片機內(nèi)存地址0xCC處開始的連續(xù)兩個存儲單元聲明為一個統(tǒng)一的16位特殊功能寄存器T2,可以使用"sfr16 T2 = 0xCC;"語句。

需要注意的是,在Keil uVision4中,用sbit、sfr、sfr16聲明特殊功能寄存器變量或特殊功能寄存器位變量時,其聲明語句都只能放在函數(shù)外,而不能放在函數(shù)內(nèi),否則出現(xiàn)語法錯誤;而用bit聲明普通位變量時,聲明語句既可放在函數(shù)外,也可放在函數(shù)內(nèi)。此外,bit、sbit、sfr、sfr16都不支持指針和數(shù)組擴展,因此,不能定義bit、sbit、sfr、sfr16型指針和數(shù)組。當然,根據(jù)C語言標準,無論是sbit、sfr、sfr16還是bit,變量必須在使用之前(至少在使用之時)聲明:這一點是顯然的。

對于初學者來說,其實沒有必要深究sbit、sfr、sfr16的用法,它們通常用在51單片機的系統(tǒng)自帶頭文件中,一般情況下無需用戶關(guān)心。

表1整理了Keil uVision4支持的各種基本數(shù)據(jù)類型和屬性,希望讀者認真理解和領(lǐng)會。

        表1 Keil uVision4面向51單片機的基本數(shù)據(jù)類型各種屬性一覽表

      ╭════════════════════════════════╮
       ║類  別║  數(shù)  據(jù)  類  型  ║長 度║           值  域            ║
       ║════════════════════════════════║
       ║      ║unsigned char     ║1字節(jié)║0~255                       ║
       ║字符型║signed char       ║1字節(jié)║-128~+127                   ║
       ║      ║char              ║1字節(jié)║-128~+127                   ║
       ║════════════════════════════════║
       ║      ║unsigned short int║2字節(jié)║0~65535                     ║
       ║      ║signed short int  ║2字節(jié)║-32768~+32767               ║
       ║      ║short int         ║2字節(jié)║-32768~+32767               ║
       ║      ║════════════════════════════║
       ║      ║unsigned short    ║2字節(jié)║0~65535                     ║
       ║整  型║signed short      ║2字節(jié)║-32768~+32767               ║
       ║      ║short             ║2字節(jié)║-32768~+32767               ║
       ║      ║════════════════════════════║
       ║      ║unsigned int      ║2字節(jié)║0~65535                     ║
       ║      ║signed int        ║2字節(jié)║-32768~+32767               ║
       ║      ║int               ║2字節(jié)║-32768~+32767               ║
       ║════════════════════════════════║
       ║      ║unsigned long int ║4字節(jié)║0~4294967295                ║
       ║      ║signed long int   ║4字節(jié)║-2147483648~+2147483647     ║
       ║      ║long int          ║4字節(jié)║-2147483648~+2147483647     ║
       ║長整型║════════════════════════════║
       ║      ║unsigned long     ║4字節(jié)║0~4294967295                ║
       ║      ║signed long       ║4字節(jié)║-2147483648~+2147483647     ║
       ║      ║long              ║4字節(jié)║-2147483648~+2147483647     ║
       ║════════════════════════════════║
       ║      ║float             ║4字節(jié)║±1.75494E-38~±3.402823E+38║
       ║浮點型║double            ║4字節(jié)║±1.75494E-38~±3.402823E+38║
       ║════════════════════════════════║
       ║      ║bit               ║1位  ║0,1                         ║
       ║位  型║sbit              ║1位  ║0,1                         ║
       ║════════════════════════════════║
       ║      ║sbit              ║1位  ║0,1                         ║
       ║SFR 型║sfr               ║1字節(jié)║0~255                       ║
       ║      ║sfr16             ║2字節(jié)║0~65535                     ║
       ╰════════════════════════════════╯
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉