【发布时间】:2014-01-21 14:43:54
【问题描述】:
假设我们有一个应该返回两个返回值的函数。
例如,我们有一些函数返回 char* 及其长度。 Char 是在该特定函数中分配的。
我可以想象以下方法:
int foo(char **result); // Passing pointer to char*, returning int
char* bar(int *len); // Passing pointer to int, returning char*
struct char_and_len foobar(); // Returning struct that contains both values
还有其他方法可以实现多个值吗?最有效的方法是什么?
考虑到性能、内存对齐或任何其他隐藏的 C 功能,我非常感谢详细的解释。
【问题讨论】:
-
为什么比您提供的选项更聪明?这样做只会混淆你的代码。
-
@meagar。为什么?我很好奇这样做的其他方法是什么。这样做可能有一些非常有趣的原因。此外,我有强烈的感觉,在 C 中做同一件事的不同方式可能会产生不同的效果和考虑。
标签: c function return multiple-variable-return