點滴收藏 typedef 與 define

2021-06-09 21:39:24 字數 577 閱讀 8910

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...