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