C/C++ typedef 用法

來源:酷知科普網 7.75K

引言:
typedef 宣告,簡稱 typedef,
功能:為現有型別建立一個新的名字。
比如:程式編寫者常常使用 typedef 來編寫更美觀和可讀的程式碼。
所謂美觀:typedef 能隱藏笨拙的語法構造、平臺相關的資料型別,
從而增強可移植性和程式的可維護性。

C/C++ typedef 用法

操作方法

(01)程式設計中:使用typedef一般有兩個目的,①給變數一個易記且意義明確的新名字,②簡化一些比較複雜的型別宣告。

C/C++ typedef 用法 第2張

(02)typedef的使用方法:格式:typedef  existing_type  new_type_name ;【注】: typedef 並不建立新的型別。它僅僅為現有型別新增一個同義字。

C/C++ typedef 用法 第3張

(03)typedef最簡單使用:格式:typedef  int  size;     typedef  unsigned  int  WORD;①宣告定義了:int的同義詞,名字為size,可以在任何需要int的上下文使用size。 ②宣告定義了:unsigned int的同義詞,名字為WORD,可以在任何需要int的上下文使用WORD。

C/C++ typedef 用法 第4張

(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);

C/C++ typedef 用法 第5張

(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;這樣,程式碼就變得更加簡潔易懂。

C/C++ typedef 用法 第6張
C/C++ typedef 用法 第7張

(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這種型別。

C/C++ typedef 用法 第8張

特別提示

typedef 並不建立新的型別;

僅僅為現有型別新增一個同義字

typedef並不建立新的型別,typedef 在編譯時被解釋

熱門標籤