typedef 在c語言中頻繁用以宣告乙個已經存在的資料型別的同義字。也可以用預處理器做類似的事。例如,思考一下下面的例子:
#define dps struct s *
typedef struct s * tps;
以上兩種情況的意圖都是要定義dps 和tps 作為乙個指向結構s指標。哪種方法更好呢?(如果有的話)為什麼?
這是乙個非常微妙的問題,任何人答對這個問題(正當的原因)是應當被恭喜的。答案是:typedef更好。思考下面的例子:
#include#define dps struct student*
typedef struct student* tps;
struct student
stud1,stud2,stud3,stud4;
void main()
上面的**定義p3為乙個指向結構的指,p4為乙個實際的結構,這也許不是你想要的。第二個例子正確地定義了p1 和p2 兩個指標。
函式指標與typedef
一 簡單的函式指標的應用。形式 1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數 pfun 首先我們根據前面提到的 形式 1 認識到它是乙個指向某種函式的指標,這種函式引數是乙個 int型,返回值是 char 型...
函式指標與typedef
關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...
typedef 用法與陷阱
首先來看乙個宣告 typedef int myfunc const char const struct stat int 怎麼理解吶?myfunc const char const struct stat int 是int,是不是有點問題。這就是對typedef的理解出了問題。之前見到的都是type...