# C語言題庫-044 53、Typedef 在C 語言中頻繁用以聲明一個已經存在的 數據類型的同義字。也可以用預處理器做類似的事。例 如,思考一下下面的例子: ``` #define dPS struct s * typedef struct s * tPS; ``` 以上兩種情況的意圖都是要定義dPS 和tPS 作爲一個 指向結構s指針。哪種方法更好呢?(如果有的話)爲 什麼? 【參考答案】這是一個非常微妙的問題,任何人答對這個問題(正當的原 因)是應當被恭喜的。答案是:typedef 更好。思考下面的例子: ``` dPS p 1,p2; tPS p3,p4; ``` 第一個擴展爲 struct s * p1, p2; 上面的代碼定義p1爲一個指向結構的指,p2爲一個實際的結構,這也許 不是你想要的。第二個例子正確地定義了p3 和p4 兩個指針。