C/C++ typedef 用法
引言:
typedef 宣告,簡稱 typedef,
功能:為現有型別建立一個新的名字。
比如:程式編寫者常常使用 typedef 來編寫更美觀和可讀的程式碼。
所謂美觀:typedef 能隱藏笨拙的語法構造、平臺相關的資料型別,
從而增強可移植性和程式的可維護性。
操作方法
(01)程式設計中:使用typedef一般有兩個目的,①給變數一個易記且意義明確的新名字,②簡化一些比較複雜的型別宣告。
(02)typedef的使用方法:格式:typedef existing_type new_type_name ;【注】: typedef 並不建立新的型別。它僅僅為現有型別新增一個同義字。
(03)typedef最簡單使用:格式:typedef int size; typedef unsigned int WORD;①宣告定義了:int的同義詞,名字為size,可以在任何需要int的上下文使用size。 ②宣告定義了:unsigned int的同義詞,名字為WORD,可以在任何需要int的上下文使用WORD。
(04)typedef+陣列+指標:可以不用如下面這樣重複定義有 81 個字元元素的陣列:char line[81]; char text[81];定義一個 typedef,每當要用到相同型別和大小的陣列時,可以這樣:typedef char line[81]; line text, secondline;同樣,可以象下面這樣隱藏指標語法:typedef char * pstr; pstr str = "abc"; int mystrcmp(pstr, pstr);
(05)typedef+函式:函式指標一般用於回撥。當我們的程式中有以下函式:void printHello(int i);然後定義一個函式指標,指向printHello,並且呼叫這個函式:void (*pFunc)(int); pFunc = &printHello; (*pFunc)(110);其中:void (*pFunc)(int) 是宣告一個函式指標,指向返回值是void,呼叫引數是(int)的函式,變數名是pFunc,pFunc就是函式指標,這是函式指標的簡單用法。 宣告一個函式指標是比較複雜的,尤其是當你要在多處地方宣告同一個型別的函式指標變數,程式碼更加複雜,所以簡化方法:typedef void (*PrintHelloHandle)(int);使用程式碼如下:PrintHelloHandle pFunc; pFunc = &printHello; (*pFunc)(110);以後其他地方的程式需要宣告類似的函式指標,只需要下面程式碼:PrintHelloHandle pFuncOther;這樣,程式碼就變得更加簡潔易懂。
(06)ypedef小結:typedef 行為有點像 #define 巨集,用其實際型別替代同義字。typedef char * pstr; pstr mystr;typedef並不建立新的型別,typedef 在編譯時被解釋。 typedef和陣列:typedef char Line[81]; Line text;把text替換為typedef char Line[81]的Line,展開之後就是char text[81];最複雜的typedef和指標typedef void (*PrintHelloHandle)(int); PrintHelloHandle pFunc;將pFunc替換typedef void (*PrintHelloHandle)(int),展開之後就是void (*pFunc)(int);其實就是宣告一個pFunc函式指標而已,根本沒有PrintHelloHandle這種型別。
特別提示
typedef 並不建立新的型別;
僅僅為現有型別新增一個同義字
typedef並不建立新的型別,typedef 在編譯時被解釋