嵌入式C开发中变量类型的使用

单片机嵌入式设备存储空间很有限,很小,并不像我们的PC机。
所以一定要用有限的空间去完成“无限大”的事情。
比如:char一个字节8位,而int4个字节啊,32位,只要在char范围内,当然要用char了
所以嵌入式编程中经常会使用char定义变量,
下面是嵌入式常用的typedef定义的数据类型
typedef signed char           int8;            1       -128~+127
typedef short (int)           int16;          2      -32768~32768
typedef int                      int32;               4         -2147483648~+2147483648
typedef long (int)              int32/int64;     4/8
typedef long long (int)        int64;              8

typedef unsigned char              uint8;              1        0~255
typedef unsigned short              uint16;             2        0~65535
typedef unsigned int                   int32;             4             0~4294967295
typedef unsigned long              uint32;                   4/8
typedef unsigned long long              uint64;              8

typedef int bool;
#define true 1
#define false 0

注意:
1.int/long/short等不指定signed/unsigned时都默认是signed,char在标准中是unsigned
2. 无论是哪种存储方式,均是最高位为符号位,0代表正数,1代表负数。剩余位存储实际值。
3.int,short,long所占的字节数由编译器决定
4.所以int 也可以存储字符,只不过比较浪费存储空间,例如int c=’D’,在内存中存储的是ASCII码→(000000000000….)01101000,打印时用十进制显示(%d)为68,十六进制显示(%#x)为0x44,字符显示(%c)为D
5.如果 65 是数字类型, 存放的是 (65)这个数字的补码;‘A’这个字符 和 65这个数字在内存中是一样的。
如果 “65” 是个字符串, 存放的是 每个字符对应的 ASCII 码,就像你说的一样。

猜你喜欢

转载自blog.csdn.net/weixin_43056962/article/details/84825617