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 在編譯時被解釋