C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以b i t为例,整数与CPU字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定。对于多数微机,表2 - 1给出了五种数据的长度和范围。
表中的长度和范围的取值是假定C P U的字长为1 6 b i t。
C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举。这些复杂类型在以后的章节中讨论。
除v o i d类型外,基本类型的前面可以有各种修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。修饰符如下:
• signed(有符号)。
• unsigned(无符号)。
• long(长型符)。
• short(短型符)。修饰符s i g n e d、s h o r t、l o n g和u n s i g n e d适用于字符和整数两种基本类型,而l o n g还可用于d o u b l e(注重,由于long float与d o u b l e意思相同,所以A N S I标准删除了多余的long float)。
表2 - 2给出所有根据A N S I标准而组合的类型、字宽和范围。切记,在计算机字长大于1 6位的系统中,short int与signed char可能不等。
*表中的长度和范围的取值是假定C P U的字长为1 6 b i t。因为整数的缺省定义是有符号数,所以s i n g e d这一用法是多余的,但仍答应使用。某些实现答应将u n s i g n e d用于浮点型,如unsigned double。但这一用法降低了程序的可移
植性,故建议一般不要采用。为了使用方便,C编译程序答应使用整型的简写形式:
• short int 简写为s h o r t。
• long int 简写为l o n g。
• unsigned short int 简写为unsigned short。
• unsigned int 简写为u n s i g n e d。
• unsigned long int 简写为unsigned long。
即,i n t可缺省。