在學習鏈表時遇到了typedef已經用typedef定義的指針,不是很懂,某浪里有位博主的博文寫的很詳細,我直接粘過來
假設我們定義一個結構體:
typedef struct ANSWER_HEADER { u8 u8Type; u8 u8Code; u32 u32TimeStamp; struct ANSWER_HEADER *pNext; }ANSWER_HEADER_T, *PANSWER_HEADER_T;
ANSWER_HEADER為結構名,這個名字主要是為了在結構體中包含自己為成員變量的時候有用(因為執行到第6行時,別名還沒有被編譯,所以第6行只能用結構名來定義指向這個結構的指針.)
ANSWER_HEADER_T為struct ANSWER_HEADER的別名
PANSWER_HEADER_T為struct ANSWER_HEADER*的別名
上面的定義方式等價於
struct ANSWER_HEADER { u8 u8Type; u8 u8Code; u32 u32TimeStamp; struct ANSWER_HEADER *pNext; }; typedef struct ANSWER_HEADER ANSWER_HEADER_T; typedef struct ANSWER_HEADER *PANSWER_HEADER_T;
之后就可以用ANSWER_HEADER_T和PANSWER_HEADER_T來定義變量,如
PANSWER_HEADER_T L;//定義了一個指向ANSWER_HEADER的指針L
相當於
ANSWER_HEADER *L;
傳送門:typedef struct和指針 - L4EX的博客 - CSDN博客
https://blog.csdn.net/u013814701/article/details/52996544
ref:【C語言】23-typedef - M了個J - 博客園 https://www.cnblogs.com/mjios/archive/2013/03/24/2979482.html