5.华清嵌入式--数据类型

数据类型很基础,也很重要,我们之前学习c语言肯定都学习过,但是一些概念并不是很牢固。

 

 

5.华清嵌入式--数据类型

从上面的框图中,可以清楚的看到一些概念的划分,

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