在C语言中的数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型确定它在存储器中占用多少空间以及变量的取值范围。下面将介绍Arduino编程中常用的数据类型。

1. void

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

例如:

  1. Void Loop ( ) {
  2. }

2. boolean(布尔值)

布尔值类型变量将保存两个值之一,true或false。每个布尔变量占用一个字节的内存。

例如:

  1. boolean val = false ;
  2. boolean state = true ;

3. char

char是一种数据类型,占用一个字节的内存,存储一个字符值。字符文字用单引号写成:’A’,对于多个字符或字符串使用双引号:”ABC”。但是,字符是存储为数字。你可以在ASCII图表中查看特定编码。这意味着可以对使用ASCII值的字符进行算术运算。例如,’A’+1的值为66,因为大写字母A的ASCII值为65。

例如:

  1. char chr_a = a’;
  2. 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。

例子:

  1. unsigned char chr_y = 121;

5. byte

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

例子:

  1. 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)。

例子:

  1. int counter = 32 ;

7. unsigned int

unsigned int(无符号整数)与int相同,存储2字节。然而,它们只存储正值,产生0到65535(2^16)-1的有效范围。Due存储4字节(32位)值,范围从0到4294967295(2^32-1)。

例子:

  1. unsigned int counter = 60 ;

8. word

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

例子:

  1. Word w = 1000 ;

9. long

long变量是用于数字存储的扩展大小变量,存储32位(4字节),从-2147483648到2147483647。

例子:

  1. long velocity = 102346 ;

10. unsigned long

unsigned long变量是用于数字存储的扩展大小变量,并存储32位(4字节)。与标准的long不同,unsigned long不会存储负数,它们的范围为0到4294967295(2^32-1)。

例子:

  1. unsigned long velocity = 101006 ;

11. short

short是16位数据类型。在所有Arduino(基于ATMega和ARM)上,一个short存储一个16位(2字节)值。这产生-32768至32767的范围(最小值为-2^15,最大值为(2^15)-1)。

例子:

  1. short val = 13 ;

12. float

浮点数的数据类型是具有小数点的数字。浮点数通常用于近似模拟值和连续值,因为它们的分辨率高于整数。浮点数可以大到3.4028235E+38,也可以低到-3.4028235E+38。它们被存储为32位(4字节)信息。

例子:

  1. float num = 1.352;

13. double

在Uno和其他基于ATMEGA的板上,双精度浮点数占用四个字节。也就是说,double实现与float完全相同,精度没有增益。在Arduino Due上,double具有8字节(64位)精度。

例子:

  1. double num = 45.352 ;