看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《aznchat100 (KG is MVP)》之銘言: : 問題(Question): : 1. : type struct node{ : ..........}NODE; : 2. : typedef struct node NODE{ : .......}; : 我今天在圖書館翻片了大大小小本的C語言書 : 還是找不到我要的解答 : 想請問這邊的高手 這兩個寫法差在哪裡? : 感謝!! 你的code本身就怪怪的 下面附上我以前自己試驗的筆記 看是不是你要的東西 =============================================== 一個匿名的struct 所以不可用 struct { int x; }; --------------------------------------------------------- 一個匿名struct,但之後馬上接上變數名a,所以a的type是此struct。 struct { int x; } a; a.x=5; --------------------------------------------------------- 定義一個叫做a的struct,並定義一個type為a的foo變數,其x元素為5 typedef struct { int x; } a; a foo={5}; --------------------------------------------------------- 看下面的範例 typedef struct b { int x; } a; a x={5}; struct b y={6}; printf("%d %d", x.x, y.x); // 輸出5 6 目前看起來a和struct b是一樣的,兩者有什麼地方不同嗎? 有! 當有在struct宣告一個指向本身struct的指標時會不同。 typedef struct b { int x; a * y; } a; 上面這寫法錯誤 a * y 中的a尚未可見 compile不過 typedef struct b { int x; struct b * y; } a; 上面這寫法才正確 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.140.149
aznchat100:感謝 我看到的那本書應該是有印刷錯誤 04/22 21:35
tjjh89017:a的意思是"型態"而不是"變數"嗎? 我之前在用的時候 04/22 21:46
tjjh89017:再用sort的時候我會丟一個像是a的"型態",可是丟一個 04/22 21:47
tjjh89017:型態為a的物件@@ 04/22 21:48
tjjh89017:這樣也可以........抱歉有點不清楚 04/22 21:49
Arim:推 很清楚 04/29 21:19