3.4.3 说明符

说明符(specifier)用于改变基本内建类型的含义并把它们扩展成一个更大的集合。有4个说明符:long、short、signed和unsigned。

long和short修改数据类型具有的最大值和最小值。一般的int必须至少有short int型的大小。整数类型的大小等级是:short int、int、long int。只要满足最小/最大值的要求,所有的大小可以看成是一样的。例如,在64位字的机器上,所有的数据类型都可能是64位的。

浮点数的大小等级是:float、double和long double。“long float”是不合法的类型,也没有short浮点数。

signed和unsigned修饰符告诉编译器怎样使用整数类型和字符的符号位(浮点数总含有一个符号)。unsigned数不保存符号,因此有一个多余的位可用,所以它能存储比signed数大一倍的正数。signed是默认的,只有char才一定要使用signed;char可以默认为signed,也可以不默认为signed。通过规定signed char,可以强制使用符号位。

下面的例子使用sizeof运算符显示用字节表示的数据类型的大小,该运算符在本章的后面介绍:

3.4.3 说明符 - 图1

3.4.3 说明符 - 图2

要注意,在不同的机器/操作系统/编译器上运行这个程序得到的结果可能是不同的。因为(如前所述)唯一一致的事情是每个不同类型都具有标准中规定的最小值和最大值。

如上所示,当用short或long改变int时,关键字int是可选的。