C語言有五種基本數(shù)據(jù)類型:字符、整型、單精度實(shí)型、雙精度實(shí)型和空類型。盡管這幾種類型數(shù)據(jù)的長度和范圍隨處理器的類型和C語言編譯程序的實(shí)現(xiàn)而異,但以b i t為例,整數(shù)與CPU字長相等,一個字符通常為一個字節(jié),浮點(diǎn)值的確切格式則根據(jù)實(shí)現(xiàn)而定。對于多數(shù)微機(jī),表2 – 1給出了五種數(shù)據(jù)的長度和范圍。
表中的長度和范圍的取值是假定C P U的字長為1 6 b i t。
C語言還提供了幾種聚合類型(aggregate types),包括數(shù)組、指針、結(jié)構(gòu)、共用體(聯(lián)合)、位域和枚舉。這些復(fù)雜類型在以后的章節(jié)中討論。
除v o i d類型外,基本類型的前面可以有各種修飾符。修飾符用來改變基本類型的意義,以便更準(zhǔn)確地適應(yīng)各種情況的需求。修飾符如下:
? 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適用于字符和整數(shù)兩種基本類型,而l o n g還可用于d o u b l e(注意,由于long float與d o u b l e意思相同,所以A N S I標(biāo)準(zhǔn)刪除了多余的long float)。
表2 – 2給出所有根據(jù)A N S I標(biāo)準(zhǔn)而組合的類型、字寬和范圍。切記,在計(jì)算機(jī)字長大于1 6位的系統(tǒng)中,short int與signed char可能不等。
*表中的長度和范圍的取值是假定C P U的字長為1 6 b i t。因?yàn)檎麛?shù)的缺省定義是有符號數(shù),所以s i n g e d這一用法是多余的,但仍允許使用。某些實(shí)現(xiàn)允許將u n s i g n e d用于浮點(diǎn)型,如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可缺省。