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