手册教程~

Arduino 数据类型

C语言中的数据类型是一个广泛的系统,用于声明不同类型的变量或函数。变量的类型决定了它在存储中占用多少空间以及如何解释存储的位模式。

下表提供了在Arduino编程期间将使用的所有数据类型。

voidBooleancharUnsigned charbyteintUnsigned intword
longUnsigned longshortfloatdoublearrayString-char arrayString-object

void

void关键字仅在函数声明中使用。它表示函数不会向调用它的函数返回任何信息。

例子

Void Loop ( ) {
   // 其余代码
}

Boolean

布尔值包含两个值中的一个,true或false。每个布尔变量占用一个字节的内存。

例子

boolean val = false ; //用布尔类型声明变量并用false初始化它
boolean state = true ; //使用布尔类型声明变量,并用true初始化它

Char

一种数据类型,占用存储字符值的内存的一个字节。文字是用单引号写的,就像这样:“A”,对于多个字符,字符串使用双引号:“ABC”。

然而,字符被存储为数字。您可以在ASCII图表中看到特定的编码。这意味着可以对字符进行算术运算,其中使用字符的ASCII值。例如,'A' + 1的值是66,因为大写字母A的ASCII值是65。

例子

Char chr_a = ‘a’ ;//用char类型声明变量并用字符a初始化它
Char chr_c = 97 ;//用char类型声明变量,并用字符97初始化它


unsigned char

无符号字符是一种无符号数据类型,占用一个字节的内存。无符号字符数据类型对0到255之间的数字进行编码。


例子

Unsigned Char chr_y = 121 ; // 使用无符号char类型声明变量,并使用字符y初始化它

byte

字节存储一个8位无符号数字,从0到255。

例子

byte m = 25 ;//用byte类型声明变量并用25初始化它

int

整数是数字存储的主要数据类型。int存储一个16位(2字节)的值。这将得到-32,768到32,767的范围(最小值为-2^15,最大值为(2^15)- 1)。

整型尺寸因板子而异。例如,在Arduino Due上,int存储一个32位(4字节)的值。这将产生-2,147,483,648到2,147,483,647的范围(最小值为-2^31,最大值为(2^31)- 1)。

例子

int counter = 32 ;// 使用int类型声明变量,并用32初始化它

Unsigned int

无符号整数(Unsigned integers)与int在存储2字节值的方式上是相同的。然而,它们只存储正数,而不存储负数,从而产生0到65,535(2^16)- 1)的有用范围。Due存储4字节(32位)的值,范围从0到4,294,967,295(2^32 - 1)。

例子

Unsigned int counter = 60 ; // 使用无符号int类型声明变量,并用60初始化它

Word

在Uno和其他基于ATMEGA的板子上,一个字存储一个16位的无符号数字。在Due和Zero上,它存储一个32位无符号数字。

例子

word w = 1000 ;//使用类型word声明变量,并用1000初始化它

Long

长变量是用于数字存储的扩展大小变量,存储32位(4字节),从-2,147,483,648到2,147,483,647。

例子

Long velocity = 102346 ;//类型为Long的变量的声明,并用102346初始化它

unsigned long

无符号长变量是用于数字存储和存储32位(4字节)的扩展大小变量。与标准的long不同,无符号long不存储负数,其范围从0到4,294,967,295(2^32 - 1)。

例子

Unsigned Long velocity = 101006 ;// 类型为Unsigned Long的变量的声明,并使用101006初始化它

short

short是16位数据类型。在所有arduino(基于ATMega和ARM)上,短存储一个16位(2字节)的值。这将得到-32,768到32,767的范围(最小值为-2^15,最大值为(2^15)- 1)。

例子

short val = 13 ;//使用short类型声明变量,并用13初始化它

float

浮点数的数据类型是具有小数点的数字。浮点数通常用于近似模拟值和连续值,因为它们的分辨率比整数大。

浮点数可以大到3.4028235E+38,也可以小到-3.4028235E+38。它们被存储为32位(4字节)的信息。

例子

float num = 1.352;//使用float类型声明变量,并用1.352初始化它

double

在Uno和其他基于ATMEGA的板上,双精度浮点数占用4字节。也就是说,双精度实现与浮点数完全相同,在精度上没有任何提高。在Arduino上,双精度是8字节(64位)的精度。

例子

double num = 45.352 ;// 使用double类型声明变量,并用45.352初始化它