推 yuanyu90221:感謝^^ 04/24 00:16
※ 引述《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