使用f舉例
舉例一
typedef int INTEGER;//指定用標識符INTEGER代表int類型
typedef float REAL;//指定用REAL代表float類型
這樣,以下兩行等價:
① int i,j; float a,b;
② INTEGER i,j; REAL a,b;
舉例二
在一個程式中,整型變數是專門用來計數的,可以用COUNT來作為整型類型名:
typedef int COUNT;//指定用COUNT代表int型
COUNT i,j;//將變數i,j定義為COUNT類型,
即int類型在程式中將變數i,j定義為COUNT類型,可以使人更一目了然地知道它們是用於計數的。
舉例三
也可以聲明結構體類型:
typedef struct//注意在struct之前用了關鍵字typedef,表示是聲明新名
{ int month; int day; int year; }DATE;//注意DATE是新類型名,而不是結構體變數名
所聲明的新類型名DATE代表上面指定的一個結構體類型。這樣就可以用DATE定義變數:
DATE birthday; DATE *p;//p為指向此結構體類型數據的指針
還可以進一步:
① typedef int NUM[100];//聲明NUM為整型數組類型,包含100個元素NUM n;//定義n為包含100個整型元素的數組
② typedef char *STRING;//聲明STRING為字元指針類型STRING p,s[10];//p為字元指針變數,s為指針數組(有10個元素)
③ typedef int (*POINTER)( )//聲明POINTER為指向函式的指針類型,函式返回整型值POINTER p1,p2;// p1,p2為POINTER類型的指針變數
聲明方法
① 先按定義變數的方法寫出定義語句(如int i;)。
② 將變數名換成新類型名(如將i換成COUNT)。
③ 在最前面加typedef(如typedef int COUNT)。
④ 然後可以用新類型名去定義變數。
再以聲明上述的數組類型為例來說明:
① 先按定義數組形式書寫: int n[100];
② 將變數名n換成自己指定的類型名:
int NUM[100];
③ 在前面加上typedef,得到
typedef int NUM[100];
④ 用來定義變數: NUM n;(n是包含100個整型元素的數組)。
習慣上常把用typedef聲明的類型名用大寫字母表示,以便與系統提供的標準類型標識符相區別。
總結
(1) typedef可以聲明各種類型名,但不能用來定義變數。用typedef可以聲明數組類型、字元串類型,使用比較方便。
(2) 用typedef只是對已經存在的類型增加一個類型名,而沒有創造新的類型。
(3) 當在不同源檔案中用到同一類型數據(尤其是像數組、指針、結構體、共用體等類型數據)時,常用typedef聲明一些數據類型,把它們單獨放在一個頭檔案中,然後在需要用到它們的檔案中用#include命令把它們包含進來,以提高編程效率。
(4) 使用typedef有利於程式的通用與移植。有時程式會依賴於硬體特性,用typedef便於移植。
(5) 使用typedef增加類型名時,原則上沒有個數限制。