typedef是用來聲明自訂資料類型,配合各種原有資料類型來達到簡化編程的目的的類型定義關鍵字.
用typedef定義類型的方法
① 先按定義變數的方法寫出定義體(如:int i)。
② 將變數名換成新類型名(例如:將i換成COUNT)。
③ 在最前面加typedef. (例如:typedef int COUNT)。
④ 然後可以用新類型名去定義變數。
說明:
(1)用typedef可以聲明各種類型名,但不能用來定義變數。
(2) 用typedef只是對已經存在的類型增加一個類型名,而沒有創造新的類型。
(3) 當不同源檔案中用到同一類型資料時,常用typedef聲明一些資料類型,把它們單獨放在一個檔案中,然後在需要用到它們的檔案中用#include命令把它們包含進來。
(4) 使用typedef有利於程式的通用與移植。
(5) typedef與#define有相似之處,例如:typedef int COUNT;#define COUNT int的作用都是用COUNT代表int。但事實上,它們二者是不同的。#define是在先行編譯時處
的,它只能作簡單的字串替換,而typedef是在編譯時間處理的。實際上它並不是作簡單的字串替換,而是採用如同定義變數的方法那樣來聲明一個類型.
結構體與typedef
struct{
int x;
int y;
} test1;
定義了結構體test1, test1.x 和test1.y 可以在語句裡用了。
struct test{
int x;
int y;
} test1;
定義了結構體test1,test1.x 和 test1.y 可以在語句裡用了。與 前面相比,省寫 了 test。
typedef struct test{
int x;
int y;
} text1,text2;
定義了結構體的(類型)別名叫text1 或叫text2。真正在語句裡用,還要寫:text1 te;
然後才可以用 te.x te.y
typedef struct{
int x;
int y;
}test1;
同上一個一樣,還要寫: test1 my_st; 才能用
my_st.x 和 my_st.y