5.华清嵌入式--数据类型
数据类型很基础,也很重要,我们之前学习c语言肯定都学习过,但是一些概念并不是很牢固。
从上面的框图中,可以清楚的看到一些概念的划分,
C语言中数据类型分为4类 基本类型,构造类型,指针类型,和空类型void
基本类型又包括整型,字符型,浮点型,枚举型。
构造类型包括数组,结构体,共用体。
我们经常会定义一个整型,字符型等的数据,在定义时我们要清楚定义数据的范围,最大多少,最小多少,是否有负数,不然就会给自己的项目中留下隐患,一些数据的溢出可能会导致整个系统瘫痪。
逻辑类型(bool类型) true 和false
#inclde <stdbool.h>
非零为真,否则为假。---》-1也会判断为真
gcc -E bool.c - o bool.i -->进行预处理
查看预处理内容
_Bool类型为基本类型,之前都自己使用整型来模拟,后来官方直接就给你封装了一下。
Sizeof(); //用来查看数据类型的长度
char类型 1字节
Signed char 1字节 -128~127
Unsigned char 1字节 0~255
假如我们定义一个char默认是一个有符号还是无符号呢??
由实际环境决定,
这里不是很确定,可以进行实验确定,在实际开发中为了方便移植,所以不建议直接定义为char。
防止数据越界
Char c1=128; //出错,数据越界 打印-128(-128(特殊)无原码和反码,补码为1000 0000)
Char c1 = 129 //出错,打印-127
Unsigned char c2=-1; 出错,打印255
整型
Short(sined short) 2字节 -32768~32767
Unsigned short 2字节 0~65535
Int(singned int) 4字节 -2147483648~2147483647
Unsigned int 4字节 0~4294967295
程序中如何判断越界
<limits.h> //通过它来看范围
例:可以用他们来限定一下防止越界
SCHAR_MIN SCHAR_MAX
SHRT_MIN SHRT_MAX