### C语言关键字浅析系列 ###
### ISO/ANSI C 关键字 ###
short,本意是“短,矮”的意思,在C语言中声明一种短整数类型,与long相对应
short与int类似,是较早出现的数据类型和较早使用的关键字之一,使用short是希望在内存中的占用空间比int小
但目前只能说,short类型只保证其在内存中的占用空间小于等于int类型
short的作用是:
声明短整型变量。
1、表示的范围
上文说,short类型保证的只是在内存的占用长度不大于int,这是因为要兼顾不同的运行平台,即不同的机器
如Windows 3.1的IBM PC中,short和int都是2字节(16bit),而Windows XP和Macintosh PowerPC上,short是16bit,int是32bit
Pentium芯片和PowerPC G3芯片上,short又都是32bit,这样的short能表示更长的数值区间
但short使用的场合一般都是能在节省空间的情况下,表示常用的不太大的数,类似的在一些数据库中还有small int和tiny int的概念
以常见的16bit的short为例,来看看short的取值区间,这与int和long是类似的:
int(4byte = 32bit):-2147483648 ~ 2147483647
unsigned int(4byte = 32bit):0 ~ 4294967295
short(2byte = 16bit):-32768~32767
unsigned short(2byte = 16bit):0~65535
(注:-32767 ~ 32768是16位单位的机器中short类型和int类型的最小取值区间)
溢出的情况详见相关文章-关键字long
2、short的使用
与int类似,我们可以在int前加short表示声明为短整型:
short int a; /* 在int前加short表示短整型 */
short b; /* 省略int也表示短整型 */
unsigned short c; /* 无符号短整型,正数区间更大 */
对于整数常量,C语言中没有类似于long那样的short常量(详见相关文章-关键字long)
3、short的输入输出
short的说明符是%h,带h前缀也表示short类型:
printf("%h"); /* 输出一个short类型变量值 */
printf("%hd, %ho, %hx"); /* 分别输出十进制、八进制、十六进制的short类型数,其中%hd是默认的 */
printf("%hu"); /* 无符号型short */
——参考《C Primer Plus第五版》
相关文章:
C语言关键字浅析-unsigned