引言typedef 聲明,簡稱 typedef,,為現(xiàn)有類型創(chuàng)建一個新的名字,。比如人們常常使用 typedef 來編寫更美觀和可讀的代碼。所謂美觀,,意指 typedef 能隱藏笨拙的語法構(gòu)造以及平臺相關(guān)的數(shù)據(jù)類型,,從而增強可移植性和以及未來的可維護性。 typedef的使用方法如下: typedef existing_type new_type_name ; 注意:typedef 并不創(chuàng)建新的類型,。它僅僅為現(xiàn)有類型添加一個同義字,。 typedef的最簡單使用typedef int size;
typedef和數(shù)組,指針我們可以不用象下面這樣重復定義有 81 個字符元素的數(shù)組: char line[81]; 定義一個 typedef,,每當要用到相同類型和大小的數(shù)組時,,可以這樣: typedef char Line[81]; 同樣,可以象下面這樣隱藏指針語法: typedef char * pstr; typedef和函數(shù)函數(shù)指針一般用于回調(diào),,例如信號處理,,libcurl等會應用到回調(diào),?;卣{(diào)是比較常用的技術(shù),而回調(diào)就要涉及函數(shù)指針,。 void printHello(int i); 然后我們要定義一個函數(shù)指針,,指向printHello,并且調(diào)用這個方法,,代碼如下: void (*pFunc)(int); 其中void (*pFunc)(int)是聲明一個函數(shù)指針,,指向返回值是void,調(diào)用參數(shù)是(int)的函數(shù),,變量名是pFunc,pFunc就是函數(shù)指針了,,以前是函數(shù)指針的簡單用法。 typedef void (*PrintHelloHandle)(int); 使用代碼如下: PrintHelloHandle pFunc; 以后其他地方的程序需要聲明類似的函數(shù)指針,,只需要下面代碼: PrintHelloHandle pFuncOther; 這樣,我們的代碼就變得更加簡潔易懂,。 typedef心得大家在看typedef和數(shù)組,指針以及typedef和函數(shù),,可能會覺得typedef比較復雜,但是其實typedef 行為有點像 #define 宏,,用其實際類型替代同義字,。 typedef char * pstr; 代碼pstr mystr,展開之后就是char * mystr,把mystr,,替換為語句typedef char * pstr的pstr,,展開之后還是char * mystr。 typedef char Line[81]; 把text替換為typedef char Line[81]的Line,展開之后就是 char text[81];
typedef void (*PrintHelloHandle)(int); 將pFunc替換typedef void (*PrintHelloHandle)(int),展開之后就是 void (*pFunc)(int); 其實就是聲明一個pFunc函數(shù)指針而已,,根本沒有PrintHelloHandle這種類型,。 |
|
來自: herowuking > 《VC》