Arduino 简明教程

Arduino - Data Types

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

下表提供了您在 Arduino 编程中将使用所有数据类型。

void

Boolean

char

Unsigned char

byte

int

Unsigned int

word

long

Unsigned long

short

float

double

array

String-char array

String-object

void

void 关键字仅用于函数声明。它表明该函数预计不会向其调用的函数返回任何信息。

Example

Void Loop ( ) {
   // rest of the code
}

Boolean

布尔值包含两个值之一,真或假。每个布尔值变量占据一个字节的内存。

Example

boolean val = false ; // declaration of variable with type boolean and initialize it with false
boolean state = true ; // declaration of variable with type boolean and initialize it with true

Char

占用一个字节的内存来存储字符值的数据类型。字符字面值用单引号编写,如下所示:'A',对于多个字符,字符串使用双引号:“ABC”。

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

Example

Char chr_a = ‘a’ ;//declaration of variable with type char and initialize it with character a
Char chr_c = 97 ;//declaration of variable with type char and initialize it with character 97
ascii char table

unsigned char

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

Example

Unsigned Char chr_y = 121 ; // declaration of variable with type Unsigned char and initialize it with character y

byte

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

Example

byte m = 25 ;//declaration of variable with type byte and initialize it with 25

int

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

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

Example

int counter = 32 ;// declaration of variable with type int and initialize it with 32

Unsigned int

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

Example

Unsigned int counter = 60 ; // declaration of variable with
   type unsigned int and initialize it with 60

Word

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

Example

word w = 1000 ;//declaration of variable with type word and initialize it with 1000

Long

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

Example

Long velocity = 102346 ;//declaration of variable with type Long and initialize it with 102346

unsigned long

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

Example

Unsigned Long velocity = 101006 ;// declaration of variable with
   type Unsigned Long and initialize it with 101006

short

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

Example

short val = 13 ;//declaration of variable with type short and initialize it with 13

float

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

浮点数可以大至 3.4028235E+38,小至 -3.4028235E+38。它们以 32 位(4 字节)信息进行存储。

Example

float num = 1.352;//declaration of variable with type float and initialize it with 1.352

double

在 Uno 和其他基于 ATMEGA 的电路板上,双精度浮点数字占用四个字节。也就是说,double 的实现方式同 float 完全相同,精度没有得到提升。而在 Arduino Due 上,double 具有 8 个字节(64 位)的精度。

Example

double num = 45.352 ;// declaration of variable with type double and initialize it with 45.352