一般形式:typedef已有類型新類型名; 一旦重命名類型,就可以以新類型名來(lái)描述數(shù)據(jù)。習(xí)慣上新類型名用大寫(xiě)字母表示。 例如: (1)typedef int integer;/*重命名整型*/ integer i,j; (2)typede{int COUNT;/*命名一計(jì)數(shù)類型COUNT*/ COUNT n1,n2; (3)typede{int NUM[100];/*命名一整型數(shù)組類型NUM*/ NUM n: (4)typedef char sTRING[81];/*命名一字符串類型STRING*/ STRING str1,str2; (5)typede{struct {int day; int month; int year; }DATE;/*命名一結(jié)構(gòu)體類型DATE*/ DATE datel,date2;
重命名類型的作用 重命名類型的作用如下: (1)有利于加強(qiáng)數(shù)據(jù)描述的針對(duì)性,增加程序的可讀性。如用上面重命名類型coUNT來(lái)定義計(jì)數(shù)器變量,一目了然。 (2)有利于程序的通用和移植。C程序設(shè)計(jì)有時(shí)可能會(huì)依賴于具體的計(jì)算機(jī)。例如,整型數(shù)據(jù)在某種機(jī)器上可能占2字節(jié)內(nèi)存單元,在另外一種機(jī)器上又可能占4字節(jié)的內(nèi)存單元,若將程序從2字節(jié)的機(jī)器移植到4字節(jié)的機(jī)器,則要將所有int說(shuō)明改成long說(shuō)明,修改的部分可能較多,程序的移植性較差。 在整型數(shù)占2字節(jié)的機(jī)器上,若用typedef重命名類型:typedef int integer;,然后可用in‘teger定義變量。若要將程序移植到整型數(shù)占4字節(jié)的機(jī)器上,只要用long代替原來(lái)的int即可,這時(shí)可再用typedef重命名類型:typedef long integer;,本文首發(fā)中國(guó)自學(xué)編程網(wǎng),此時(shí)程序中用integer定義的變量都為long型,其它部分不變,方便移植。 (3)有利于減少程序書(shū)寫(xiě)的工作量。若程序中有若干處要用到同一種復(fù)雜數(shù)據(jù)類型,書(shū)寫(xiě)起來(lái)比較復(fù)雜,通過(guò)重命名類型,可減少重復(fù)勞動(dòng)。
幾點(diǎn)說(shuō)明 (1)用typedef只能對(duì)已有類型增加一個(gè)名字,而不能自己去創(chuàng)造一個(gè)新的類型。 (2)用typedef可以對(duì)各種已有類型增加新的類型名,但不能用來(lái)定義變量。 (3)重命名類型,可以將數(shù)組類型與數(shù)組變量分離開(kāi)來(lái)。 (4)重命名類型與編譯預(yù)處理不同,是在編譯時(shí)處理,實(shí)際上也并不是作簡(jiǎn)單的字符串替換。 (5)常將一些常用的重命名類型單獨(dú)放一文件中,需要時(shí)用#include指令將它們包含至程序中
|