【发布时间】:2013-02-20 14:03:49
【问题描述】:
对于分配,我们必须使用预先确定的头文件 - 我无法对其进行任何更改。
然而大多数函数返回一个节点(一个结构节点),但我希望它们返回一个指向节点的指针。
有什么方法可以更改我的functions.c 文件中的函数调用?
如果没有返回节点,我怎么能有一个指针指向它??
例如:
bst_node_t BSTSearchNode( bst_root_t root, bst_key_t key, cmp_func_t cmp_func );
是头文件中的函数原型。但是我想返回一个指向节点而不是节点本身的指针。
【问题讨论】:
-
你必须使用那个特定的头文件和这些特定的函数吗?如果是这样,你不能改变它。或者你需要重新定义函数。
-
您确定
bst_node_t不是指针吗? -
为什么要更改这些原型?好的编译器能够优化出在许多情况下会通过返回结构而产生的副本。由于这是一项任务,因此您不必担心。专注于按要求实现 API。
-
我认为它是一个指针,因为它被定义为 typedef void* bst_node_t 但是当我尝试写 node = NULL 时它说这是无效的\
-
如果有
typedef void *bst_node_t;,那么bst_node_t就是指针。但是将指针隐藏在 typedef 后面是邪恶的。你能显示标题吗?