作者SansWord (是妳)
看板C_and_CPP
標題[問題] C遇到這種狀況要怎麼迴避?
時間Mon May 4 18:51:55 2009
先附上Code
typedef struct {
int type; // 0 for int, 1 for char
} TypeNode;
typedef TypeNode *TypeP;
typedef struct {
TypeP Type;
char *name;
}VardecNode;
今天我有兩個Structure, 第二個structure 需要用到第一個structure 的pointer,
所以依序宣告後便沒有問題
可是如果
我把宣告反過來, 如下:
typedef struct {
TypeP Type;
char *name;
}VardecNode;
typedef struct {
int type; // 0 for int, 1 for char
} TypeNode;
typedef TypeNode *TypeP;
就會因為TypeP初次使用時尚未宣告而出現syntax error
現在的實際狀況是我有一堆structure需要彼此的pointer,
所以不可能先宣告再使用....
這種情況要如何解決?
狀況如下
typedef struct {
B_P toB;
}A_Node;
typedef A_Node* A_P;
typedef struct {
C_P toC;
}B_Node;
typedef B_Node* B_P;
typedef struct {
A_P toA;
}C_Node;
typedef C_Node* C_P;
--
實際狀況沒有那麼簡單, 而是一堆structure 糾纏在一起....
不過我想問問有沒有簡單的解決方法
--
愛與被愛....都是很毒很毒的
毒藥
愛著一個人....只會感受到付出沒有回報的悲傷
被一個人愛上....卻會因為不能回應而覺得有罪惡感
也許...愛..和被愛..都只有一種解藥....那就是....
深深愛上一個深愛你的人
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.233.2
1F:推 mryf:在最前面先宣告! 05/04 19:06
2F:→ james732:typedef struct C_Node; 先寫類似這樣的東西吧?? 05/04 19:17
3F:推 ledia:宣告先全寫出來, 之後再定義就可以比較自由 05/04 19:27
5F:推 typeotoco:這讓我想起 HTREEITEM =.= 05/04 21:16
6F:→ SansWord:多謝三樓!!! It works fine! 05/04 22:43
7F:→ SansWord:5樓專業!!! 我在寫Abract Syntax tree, 意思差不多 05/04 22:44