資源描述:
《DS_typedef(typedef)數(shù)據(jù)結(jié)構(gòu)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)結(jié)構(gòu)之——DS_typedef…….Austainfel一、typedef——來源、二、typedef——語法描述1.格式:typedef類型名稱類型標(biāo)識符;2.定義新的類型名稱后,可像基本數(shù)據(jù)類型來定義變量3.typedef的主要應(yīng)用有如下的幾種形式1.為基本數(shù)據(jù)類型定義新的類型名2.為自定義數(shù)據(jù)類型(結(jié)構(gòu)體、公用體和枚舉類型)定義簡潔的類型名稱3.為數(shù)組定義簡潔的類型名稱4.為指針定義簡潔的名稱(數(shù)據(jù)指針定義新的名稱、函數(shù)指針定義新的名稱)三、typedef——案例四、typedef——與define、#
2、const五、宏定義1.typedef——來源現(xiàn)實(shí)生活中,信息的概念可能是長度,數(shù)量和面積等。在C語言中,信息被抽象為int、float和double等基本數(shù)據(jù)類型。從基本數(shù)據(jù)類型名稱上,不能夠看出其所代表的物理屬性,并且int、float和double為系統(tǒng)關(guān)鍵字,不可以修改。為了解決用戶自定義數(shù)據(jù)類型名稱的需求,C語言中引入類型重定義語句typedef,可以為數(shù)據(jù)類型定義新的類型名稱,從而豐富數(shù)據(jù)類型所包含的屬性信息。一種在計(jì)算機(jī)編程語言中用來聲明自定義數(shù)據(jù)類型、聲明定義一個(gè)結(jié)構(gòu)體,較好地體現(xiàn)程序的模塊化結(jié)構(gòu)
3、,使程序美觀、可讀性、代碼更健壯。。創(chuàng)建平臺無關(guān)類型,隱藏復(fù)雜和難以理解的語法。使用typedef可編寫出更美觀和可讀的代碼。typedef能隱藏笨拙的語法構(gòu)造以及平臺相關(guān)的數(shù)據(jù)類型,增強(qiáng)可移植性和未來的可維護(hù)性。1.typedef——語法描述一、格式:typedef類型名稱類型標(biāo)識符;注“typedef”系統(tǒng)保留字“類型名稱”已知數(shù)據(jù)類型名稱(基本數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型)“類型標(biāo)識符”新的類型名稱例:typedefdoubleLENGTH;二、定義新的類型名稱后,可像基本數(shù)據(jù)類型來定義變量例:typede
4、fintCOUNT;intb;COUNTc;注此聲明定義了一個(gè)int的同義字,名字為COUNT。typedef并不創(chuàng)建新的類型,僅僅為現(xiàn)有類型添加一個(gè)同義字??梢栽谌魏涡枰猧nt的上下文中使用COUNT。三、typedef的主要應(yīng)用有如下的幾種形式為基本數(shù)據(jù)類型定義新的類型名例:typedefintCOUNT;typedefdoubleAREA;目的豐富數(shù)據(jù)類型中包含的屬性信息、系統(tǒng)移植的需要為自定義數(shù)據(jù)類型(結(jié)構(gòu)體、公用體和枚舉類型)定義簡潔的類型名稱例:typedefstruct?{doublex;doubl
5、ey;doublez;}Point;PointNeed_Point;為數(shù)組定義簡潔的類型名稱例:inta[10],b[10],c[10],d[10];//(定義三個(gè)長度為5的整型數(shù)組)TypedefintINT_ARRAY[10];//0為數(shù)組的長度INT_ARRAYa,b,c;(INT_ARRAY_10為新的類型名,以10為數(shù)組的長度a,b,c均是長度為10的整型數(shù)組)為指針定義簡潔的名稱(數(shù)據(jù)指針定義新的名稱、函數(shù)指針定義新的名稱)例:typedefchar*STRING;STRINGcsName={“Jho
6、n”};typedefint(*MyFUN)(inta,intb);//MyFUN代表int*XFunction(inta,intb)//類型指針的新名稱)typedefint(*MyFUN)(inta,intb);intMax(inta,intb);MyFUN*pMyFun;pMyFun=Max;例:typedefchar*pstr; intmystrcmp(pstr,pstr);typedefconstchar*pstr;//錯(cuò)誤寫法:intmystrcmp(constpstr,constpstr);目的t
7、ypedef可掩飾復(fù)合類型如:指針和數(shù)組。注意1)typedef的目的是為已知數(shù)據(jù)類型增加一個(gè)新的名稱。因此并沒有引入新的數(shù)據(jù)類型。2)typedef只適于類型名稱定義,不適合變量的定義。3)typedef與#define具有相似的之處,但是實(shí)質(zhì)不同。提示【#defineAREAdouble與typedefdoubleAREA可達(dá)到相同效果,但實(shí)質(zhì)不同?!?define為預(yù)編譯處理命令,主要定義常量,此常量可以為任何的字符及其組合,在編譯之前,將此常量出現(xiàn)的所有位置,用其代表的字符或字符組合無條件的替換,然后進(jìn)行
8、編譯?!総ypedef是為已知數(shù)據(jù)類型增加一個(gè)新名稱,原理與使用int、double等保留字一致。3.typedef——案例一.基本概念剖析int*(*a[5])(int,char*);??????//#1?void(*b[10])(void(*)());//#2?double(*)()(*pa)[9];?????????//#31.C語言中函數(shù)聲明和數(shù)組聲明。函數(shù)聲明一