Arduino - 数据类型

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

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

void Boolean char Unsigned char byte int Unsigned int word
long Unsigned long short float double array String-char 数组 String-对象

void

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

示例

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

布尔值

布尔值包含两个值之一,即 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 初始化它

ASCII 字符表

无符号字符

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

示例

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

byte

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

示例

byte m = 25 ;//声明类型为 byte 的变量并用 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)。

示例

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

无符号 int

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

示例

Unsigned int counter = 60 ; // 用
类型 unsigned int 声明变量并用 60 初始化它

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

示例

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

Long

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

示例

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

unsigned long

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)上,short 存储 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 的主板上,双精度浮点数占用四个字节。也就是说,double 的实现与 float 完全相同,精度没有提高。在 Arduino Due 上,double 具有 8 字节(64 位)精度。

示例

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