看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《aznchat100 (KG is MVP)》之銘言: : 問題(Question): : 1. : type struct node{ : ..........}NODE; : 2. : typedef struct node NODE{ : .......}; : 我今天在圖書館翻片了大大小小本的C語言書 : 還是找不到我要的解答 : 想請問這邊的高手 這兩個寫法差在哪裡? : 感謝!! 假設一開始的敘述如下: typedef struct [A] {...} [B0], [B1], [B2]..; 那這就相當於: struct [A] {...}; typedef struct [A] [B0]; typedef struct [A] [B1]; typedef struct [A] [B2]; ... 接著就是一般的typedef用的替換方式,直接用例子示範: 假設有二個敘述: 1. typedef [...1] [tn] [...2]; // [tn]為typedef定義出的型別名稱。 2. [tn] [var]; // [var]是由型別[tn]定義出的變數名稱。 現在開始假設我是台編譯器遇到了2敘述,馬上就依據1敘述改寫成如下: // 拆了typedef然後把[tn]改成[var] [...1] [var] [...2]; 有個以上的方法後,馬上看到改寫原Po問題後的例子: #include <stdio.h> typedef struct A{ // ...(省略) } B, *C; int main() { struct A var1; B var2; C var3; return 0; } 第一次更動後: #include <stdio.h> struct A{ // ...(省略) }; typedef struct A B; typedef struct B *C; int main() { struct A var1; B var2; C var3; return 0; } 第二次更動後: #include <stdio.h> struct A{ // ...(省略) }; int main() { struct A var1; struct A var2; struct A *var3; return 0; } 這樣~ 希望原Po能夠明白。 以上學習來自板上的某些人! PS: 其實我是忘記有哪些人的關係 (臉紅^^" 就這樣! 報告結束! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.76.243
yuanyu90221:感謝^^ 04/24 00:16