(2014-08-08 13:00:21)
標籤:
在keil c51或者iar for c8051編譯器下:int 佔兩個位元組 範圍:-32768~+32767
long佔四個位元組 範圍:-2147483648~+2147483647
float佔四個位元組 範圍:3.40e+38 ~ +3.40e+38
double佔8個位元組 範圍:-1.79e+308 ~ +1.79e+308
在標準c語言中,存在著如下六種基本資料型別:1、char:字元型;
2、short = short int:短整型
3、int:整型
4、long = long int:長整型
5、float:單精度浮點型
6、double:雙精度浮點型
而面向51微控制器的keil uvision4對此進行了簡化, 因此,可以理解為只存在如下四種基本資料型別:
1、char:字元型
2、int = short = short int:整型
3、long = long int:長整型
4、float = double:單精度浮點型
應對51微控制器硬體的一些特點,keil uvision4還擴充套件了bit、sbit、sfr、sfr16等四種特殊基本資料型別,它們都是標準c中所沒有的。其中:
1、bit:宣告乙個普通的位變數。例如:"bit flag;"。
2、sbit:宣告特殊功能暫存器中的某一位。例如,使用"sbit ti = scon^0;",就宣告了ti為特殊功能暫存器scon的第0位。
3、sfr:宣告乙個8位暫存器為特殊功能暫存器。例如,將51微控制器記憶體位址0x98處的儲存單元宣告為8位特殊功能暫存器scon,可以使用"sfr scon = 0x98;"語句。
4、sfr16:宣告乙個16位的暫存器為特殊功能暫存器。為了將51微控制器記憶體位址0xcc處開始的連續兩個儲存單元宣告為乙個統一的16位特殊功能暫存器t2,可以使用"sfr16 t2 = 0xcc;"語句。
需要注意的是,在keil uvision4中,用sbit、sfr、sfr16宣告特殊功能暫存器變數或特殊功能暫存器位變數時,其宣告語句都只能放在函式外,而不能放在函式內,否則出現語法錯誤;而用bit宣告普通位變數時,宣告語句既可放在函式外,也可放在函式內。此外,bit、sbit、sfr、sfr16都不支援指標和陣列擴充套件,因此,不能定義bit、sbit、sfr、sfr16型指標和陣列。當然,根據c語言標準,無論是sbit、sfr、sfr16還是bit,變數必須在使用之前(至少在使用之時)宣告:這一點是顯然的。
對於初學者來說,其實沒有必要深究sbit、sfr、sfr16的用法,它們通常用在51微控制器的系統自帶標頭檔案中,一般情況下無需使用者關心。
表1整理了keil uvision4支援的各種基本資料型別和屬性,希望讀者認真理解和領會。
C 中的資料型別 基本資料型別
資料的基本型別包括 基本型別和符合型別。其命名最好是按照英文方式命名。如果有多個表示同一事物的變數則可以用下標 123等來命名。如果需要兩個單詞才可以命名的變數則這兩個單詞之間通常使用 來連線。基本資料型別也包括整型和浮點型,接下來我們先來介紹整型。a 整型 short int long longl...
js中的資料型別和資料型別轉換
原始型別 string number boolean null undefined symbol 物件 object 顯示型別轉換是通過呼叫下面這三個函式來進行的。1.number 數值 轉換之後還是數值 字串 如果可以被解析為數值,則轉為數值,否則轉為nan,空字串轉為0 布林值 true轉成1,...
MYSQL中的資料型別
mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個 列型別的儲存需求,然後提供每個類中的型別性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列型別的附加資訊,例如你能為其指定值的允 許格式。由mys...