计算机处理的是数,而不是符号,学习C语言,得了解它所支持的基本类型,这样我们才能更好的运用C语言,尤其是在嵌入式编程中。
1、整数类型
计算机的一切基础都是基于数的处理,在C语言中是如何表达负整数,正整数和0的呢?在C语言中整数类型分为两种有符号类型(signed)和无符号类型(unsigned), 如果再按照范围划分的话,又有短整型(short)、整型(int)和长整型(long), 这样一来类型就比较多了,这样看起来比较累人,你定义一个变量时,需要为这个变量确定范围,保证这个变量的正常使用。假如你正在使用c语言在16位机器上开发一个只显示秒的时钟显示程序,你设置一个unsigned int 类型的sec变量,一秒钟+1,但是过了65535秒之后,该时钟上显示突然变成了0, 这时的你很崩溃,发生了什么???原来是无符号整数溢出了呀!所以我们需要注意C语言基本类型的取值范围,这样我们才能在嵌入式开发中披荆斩棘。
下表是不同整数类型的范围。
表1 16位机的整数类型
类型 | 最小值 | 最大值 |
---|---|---|
short int | -2^15 - 1 | 2^15 - 1 |
unsigned short int | 0 | 2^16 - 1 |
int | -2^15 -1 | 2^15 -1 |
unsigned int | 0 | 2^16 |