數(shù)據(jù)類型在C語(yǔ)言中是一個(gè)很廣泛的體系,它用于聲明不同類型的變量或函數(shù)。變量的類型決定了它在存儲(chǔ)中占用多少空間以及如何存儲(chǔ)。下面列出了我們?cè)贏rduino編程過(guò)程中會(huì)使用到的所有數(shù)據(jù)類型。
void
例子:
Void Loop ( ) { // rest of the code }
void只在函數(shù)聲明中使用。它表明,函數(shù)不會(huì)向調(diào)用它的函數(shù)返回任何信息。
Boolean
例子:
boolean val = false ; // 用布爾類型聲明變量,并用false初始化它. boolean state = true ; // 用布爾類型聲明變量,并用true初始化它.
布爾類型的變量包含了兩個(gè)值中,true 或 false。每個(gè)布爾變量占用一個(gè)字節(jié)的內(nèi)存。
Char
例子:
Char chr_a = 'a' ;//用char類型聲明變量,并用字符a初始化它. Char chr_c = 97 ;//用char類型聲明變量,并用字符97初始化它.
char類似于字符串,這種變量的大小通常為1個(gè)字節(jié)。書寫時(shí),單字符用單引號(hào),比如:’A’;多個(gè)字符,使用雙引號(hào):”ABC”。當(dāng)字符以數(shù)字形式存儲(chǔ)時(shí),需要遵循ASCII碼表中的特定編碼,這意味著可以使用字符對(duì)應(yīng)的 ASCII 碼進(jìn)行算術(shù)運(yùn)算。比如:’A’ + 1的值是66,因?yàn)榇髮懽帜窤的ASCII 碼是65。 范圍是-128 ~127 。
unsigned char
例子:
Unsigned Char chr_y = 121 ; // 用無(wú)符號(hào)字符類型聲明變量
無(wú)符號(hào)字節(jié)型是一種無(wú)符號(hào)數(shù)據(jù)類型,占用一個(gè)字節(jié)的內(nèi)存。無(wú)符號(hào)字節(jié)類型的取值范圍是 0 到 255。
byte
byte 存儲(chǔ)一個(gè)8位無(wú)符號(hào)數(shù)字,范圍從0到255。如:
byte m = 25 ;//用字節(jié)類型聲明變量,并用25初始化它.
int
整形是數(shù)字存儲(chǔ)的主要數(shù)據(jù)類型。int 存儲(chǔ)一個(gè)16位(2字節(jié))的值范圍是: -32,768到 32,767 (最小值為-2^15,最大值為(2^15)- 1)。在Arduino中 int 的大小會(huì)因開(kāi)發(fā)板的不同而不同。例如,在Arduino Due上,int 存儲(chǔ)一個(gè)32位(4字節(jié))的值,范圍是 -2,147,483,648 到 2,147,483,647 (最小值為-2^31,最大值為(2^31)- 1)。如:
int counter = 32 ;// 用int類型聲明變量,并用32初始化它.
Unsigned int
無(wú)符號(hào)整型數(shù)在存儲(chǔ)方式上與 int 相同,它不存儲(chǔ)負(fù)值只存儲(chǔ)正值,范圍是:0 到65,535 (2^16)- 1。對(duì)于Arduino Due 它的存儲(chǔ)范圍從 0 到4,294,967,295 (2^32 – 1)。
Unsigned int counter = 60 ;
Word
在Uno和其他基于ATMEGA的開(kāi)發(fā)板上,一個(gè) word 存儲(chǔ)一個(gè)16位無(wú)符號(hào)數(shù)字。而在 Due 和 Zero 開(kāi)發(fā)板上,word 存儲(chǔ)一個(gè)32位無(wú)符號(hào)數(shù)字。
word w = 1000 ;//使用類型 word 聲明變量,并用1000初始化它.
Long
long 長(zhǎng)整型常量末尾要用L標(biāo)識(shí)出來(lái),它字節(jié)數(shù)是4,存儲(chǔ)位數(shù)32位,范圍:從 -2,147,483,648 到 2,147,483,647。
Long velocity = 102346 ;//Long型變量的聲明,并用102346初始化它.
unsigned long
無(wú)符號(hào)long變量是用于數(shù)字存儲(chǔ)和存儲(chǔ)32位(4字節(jié))的擴(kuò)展大小變量。與long不同,無(wú)符號(hào)long變量不存儲(chǔ)負(fù)數(shù),其范圍從 0 到 4,294,967,295(2^32 – 1)。
Unsigned Long velocity = 101006 ;
short
short是16位數(shù)據(jù)類型。在所有arduino(基于ATMega和ARM)的開(kāi)發(fā)板上,一個(gè)short存儲(chǔ)一個(gè)16位(2字節(jié))的值。這將產(chǎn)生-32,768到32,767的范圍(最小值為-2^15,最大值為(2^15)- 1)。
short val = 13 ;
float
浮點(diǎn)數(shù)的數(shù)據(jù)類型是具有小數(shù)點(diǎn)的數(shù)字。浮點(diǎn)數(shù)通常用于近似模擬值和連續(xù)值,因?yàn)樗鼈儽日麛?shù)具有更高的分辨率。浮點(diǎn)數(shù)可以大到3.4028235E+38,也可以小到-3.4028235E+38。它們被存儲(chǔ)為32位(4字節(jié))的信息。
float num = 1.352;
double
在Uno和其他基于ATMEGA的開(kāi)發(fā)板上,double 占用4個(gè)字節(jié)。也就是說(shuō),double 與 float 完全相同,在精度上沒(méi)有任何提高。在Arduino Due上,double有8 字節(jié)(64bit)的精度。
double num = 45.352 ;
關(guān)于數(shù)據(jù)類型的介紹到此結(jié)束,下期會(huì)介紹Arduino的變量和常量。