Re: [討論] typedef的問題請教

作者: chuegou (chuegou)   2016-06-18 21:30:52
我想要問一些相關的問題
在C語言情況下
我通常會在.h裡
做typedef struct
且在裡面放入指標函式
做出類似成員/方法的結構
由其他.c引用和宣告變數
像是
typedef struct tree_node TREE_NODE; /* 自我參考用 */
typedef struct tree_node{
/* 成員 */
char *word;
TREE_NODE *left;
TREE_NODE *right;
/* 方法 */
void (*insert)(TREE_NODE**, char*);
}tree_node;
問題
我是否可以在"變數宣告時"就指定指標函式指向的位置?
目前我是寫一個"初始化函式"
在"用到這個struct前"將指標函式指向我要的函式位置
可是這個"初始化函式"還是沒辦法包進struct中
作者: james732 (好人超)   2016-06-18 21:52:00
聽起來你需要用C++的constructor XD
作者: LPH66 (-6.2598534e+18f)   2016-06-18 22:14:00
不是, 這感覺聽起來像是有簡單物件的 C
作者: EdisonX (卡卡獸)   2016-06-18 23:41:00
可附上你說的 "初始化函式" 嗎?這樣做應該不會有問題。另你的問題一應該是可以的 (struct 宣告並給初值)。
作者: LPH66 (-6.2598534e+18f)   2016-06-19 00:46:00
是說, 這種東西你其實可以學 FILE* 的方式初始化資源一定要透過某個函式去取得那在那個函式裡你就可以進行你要的初始化了給用戶使用的就一律類似 FILE* 這樣, 只要宣告指標即可不要給用戶使用結構體本身
作者: Qoofate (大魯閣_最強打者)   2016-07-06 13:40:00
應該void tree_init( TREE_NODE ** node) 才對?

Links booklink

Contact Us: admin [ a t ] ucptt.com