C说话有五种根基数据类型:字符、整型、单精度实型、双精度实型和空类型。尽管这几种类型数据的长度和规模随措置器的类型和C说话编译轨范的实现而异,但以b i t为例,整数与CPU字长相等,一个字符凡是为一个字节,浮点值简直切名目则按照实现而定。对于大都微机,表2 - 1给出了五种数据的长度和规模。 表中的长度和规模的取值是假定C P U的字长为1 6 b i t。
* g- I- w! |0 x C说话还供给了几种聚合类型(aggregate types),搜罗数组、指针、结构、共用体(连系)、位域和列举。这些复杂类型在往后的章节中谈判。! d, j% w. r$ P3 j; u5 E5 d7 g: b
除v o i d类型外,根基类型的前面可以有各类润色符。润色符用来改变根基类型的意义,以便更切确地顺应各类情形的需求。润色符如下:2 m7 o2 i% k0 A, D2 [7 m M
? signed(有符号)。% C9 s6 T$ @8 _0 E( A
? unsigned(无符号)。
* `, U) A% h: e: |% \ ? long(长型符)。
7 `. v/ b* V1 `. w, y9 n ? short(短型符)。" [0 L6 G7 E+ d) z. @6 z
润色符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)。
: B' z2 O$ ~$ }, Y" H 给出所有按照A N S I尺度而组合的类型、字宽和规模。切记,在计较机字长大于1 6位的系统中,short int与signed char可能不等。
% j# M: I" N# Q( Y+ p4 V' C *表中的长度和规模的取值是假定C P U的字长为1 6 b i t。因为整数的缺省界说是有符号数,所以s i n g e d这一用法是多余的,但仍许可使用。某些实现许可将u n s i g n e d用于浮点型,如unsigned double。但这一用法降低了轨范的可移) [* F& h* m' j* m# \. \1 {& L
植性,故建议一般不要采用。为了使用便利,C编译轨范许可使用整型的简写形式:
8 e v% `: a% E3 D, A3 q7 H( e ? short int 简写为s h o r t。% i& s- U2 T% s9 V6 ~1 v
? long int 简写为l o n g。 m" c) a# l1 ]- G* E+ K+ T
? unsigned short int 简写为unsigned short。
6 X7 c( M) X5 _* y5 Y4 H4 }% o ? unsigned int 简写为u n s i g n e d。" p& y! ] @" M; j* m+ N
? unsigned long int 简写为unsigned long。
Q" {# ]2 B0 ~4 Z0 I' E o+ Q: f6 M 即,i n t可缺省。 |