如何在不更改头文件的情况下更改返回的函数

时间:2013-02-20 14:03:49

标签: c function struct

对于作业,我们必须使用预定的头文件 - 我无法对其进行任何更改。

然而,大多数函数返回一个节点(一个struct节点),但我希望它们返回一个指向该节点的指针。

有没有办法在我的functions.c文件中更改函数调用?

如果没有返回节点,我怎么能有一个指向它的指针?

例如:

bst_node_t BSTSearchNode( bst_root_t root, bst_key_t key, cmp_func_t cmp_func );

是头文件中的函数原型。但是我想返回指向节点而不是节点本身的指针。

1 个答案:

答案 0 :(得分:2)

不,你不能,函数声明和定义必须匹配。

出于好奇,将使用与您的实现链接的程序检查分配,并尝试调用BSTSearchNode函数?在这种情况下,你真的想以正确的方式定义它......

编辑:在您的评论之后,您的任务实际上是按照定义实现该功能,而不是更改其返回类型。所以,就这样做;)

按照要求继续传递值可能实际上更简单(如果您尝试传递指向数据的指针,则必须小心节点的内存分配位置,拥有者的位置等等...)。标头中的API可能不适合此。

当然,如果bst_node_t是指向某个实体的指针的typedef,这也适用,在这种情况下,您无需更改任何内容。没有标题很难分辨......