在C语言中的数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型确定它在存储器中占用多少空间以及变量的取值范围。下面将介绍Arduino编程中常用的数据类型。
1. void
void关键字仅用于函数声明。它表示该函数不会向调用它的函数返回任何信息。
例如:
Void Loop ( ) {
}
2. boolean(布尔值)
布尔值类型变量将保存两个值之一,true或false。每个布尔变量占用一个字节的内存。
例如:
boolean val = false ;
boolean state = true ;
3. char
char是一种数据类型,占用一个字节的内存,存储一个字符值。字符文字用单引号写成:’A’,对于多个字符或字符串使用双引号:”ABC”。但是,字符是存储为数字。你可以在ASCII图表中查看特定编码。这意味着可以对使用ASCII值的字符进行算术运算。例如,’A’+1的值为66,因为大写字母A的ASCII值为65。
例如:
char chr_a = ‘a’;
char chr_c = 97;
常用可见ASCII表
ASCII打印字符 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
十进制 | 字符 | 十进制 | 字符 | 十进制 | 字符 | 十进制 | 字符 | 十进制 | 字符 | |
32 | 51 | 3 | 70 | F | 89 | Y | 108 | l | ||
33 | ! | 52 | 4 | 71 | G | 90 | Z | 109 | m | |
34 | “ | 53 | 5 | 72 | H | 91 | [ | 110 | n | |
35 | # | 54 | 6 | 73 | I | 92 | \ | 111 | o | |
36 | $ | 55 | 7 | 74 | J | 93 | ] | 112 | p | |
37 | % | 56 | 8 | 75 | K | 94 | ^ | 113 | q | |
38 | & | 57 | 9 | 76 | L | 95 | _ | 114 | r | |
39 | ‘ | 58 | : | 77 | M | 96 | ` | 115 | s | |
40 | ( | 59 | ; | 78 | N | 97 | a | 116 | t | |
41 | ) | 60 | < | 79 | O | 98 | b | 117 | u | |
42 | * | 61 | = | 80 | P | 99 | c | 118 | v | |
43 | + | 62 | > | 81 | Q | 100 | d | 119 | w | |
44 | , | 63 | ? | 82 | R | 101 | e | 120 | x | |
45 | - | 64 | @ | 83 | S | 102 | f | 121 | Y | |
46 | . | 65 | A | 84 | T | 103 | g | 122 | Z | |
47 | / | 66 | B | 85 | U | 104 | h | 123 | { | |
48 | 0 | 67 | C | 86 | V | 105 | i | 124 | | | |
49 | 1 | 68 | D | 87 | W | 106 | j | 125 | } | |
50 | 2 | 69 | E | 88 | X | 107 | k | 126 | ~ |
4. unsigned char
unsigned char是一种无符号数据类型,占用一个字节的内存。unsigned char数据类型编码数字为0到255。
例子:
unsigned char chr_y = 121;
5. byte
例子:
byte m = 25;
6. int
整数(int)是数字存储的主要数据类型。int存储16位(2字节)值。这产生-32768至32767的范围(最小值为-2^15,最大值为(2^15)-1)。
int的大小因板而异。例如,在Arduino Due中,int存储32位(4字节)值。这产生-2147483648至2147483647的范围(最小值-2^31和最大值(2^31)-1)。
例子:
int counter = 32 ;
7. unsigned int
unsigned int(无符号整数)与int相同,存储2字节。然而,它们只存储正值,产生0到65535(2^16)-1的有效范围。Due存储4字节(32位)值,范围从0到4294967295(2^32-1)。
例子:
unsigned int counter = 60 ;
8. word
在UNO和其他基于ATMEGA的板上,一个word存储一个16位无符号数。在Due和Zero上,它存储一个32位无符号数。
例子:
Word w = 1000 ;
9. long
long变量是用于数字存储的扩展大小变量,存储32位(4字节),从-2147483648到2147483647。
例子:
long velocity = 102346 ;
10. unsigned long
unsigned long变量是用于数字存储的扩展大小变量,并存储32位(4字节)。与标准的long不同,unsigned long不会存储负数,它们的范围为0到4294967295(2^32-1)。
例子:
unsigned long velocity = 101006 ;
11. short
short是16位数据类型。在所有Arduino(基于ATMega和ARM)上,一个short存储一个16位(2字节)值。这产生-32768至32767的范围(最小值为-2^15,最大值为(2^15)-1)。
例子:
short val = 13 ;
12. float
浮点数的数据类型是具有小数点的数字。浮点数通常用于近似模拟值和连续值,因为它们的分辨率高于整数。浮点数可以大到3.4028235E+38,也可以低到-3.4028235E+38。它们被存储为32位(4字节)信息。
例子:
float num = 1.352;
13. double
在Uno和其他基于ATMEGA的板上,双精度浮点数占用四个字节。也就是说,double实现与float完全相同,精度没有增益。在Arduino Due上,double具有8字节(64位)精度。
例子:
double num = 45.352 ;