【发布时间】:2010-08-05 17:51:58
【问题描述】:
我正在为 C 编写一个库,一个函数可以返回字符串 (char *)、整数或双精度数。除此之外,字符串的长度是未知的。我真的不知道如何处理这个问题。我想过使用指针作为函数的参数,但这真的很麻烦。
谁能给我一个解决方案,或者一些简短的示例代码?谢谢。
编辑
将 void 指针作为返回类型,将返回值大小的指针作为参数:
void* func(int x, int y, int *size) { ... }
/* or */
void* func(int x, int y, int &size) { ... }
/* always confused about them ): */
?
【问题讨论】:
-
您可以通过联合或其他方式完成此操作,但请先问问自己您是否真的需要这样做。还有其他方法可以解决根本问题吗?如果没有,为什么不呢?
-
它与键值有关。键始终是字符串,值可以是任何类型。
-
哦,当然!程序员知道值的类型。那将是不同的功能。
-
你给出的第二个例子是无效的C。参考来自C++。
-
关于您编辑中的示例代码,请使用
int *。int &形式是 C++。如果您要在这样的参数中返回数据,则通过参数返回 all 的数据。部分返回值和部分参数返回可能更令人困惑。
标签: c function return-type