C中函数调用返回值

栗豆 2010-08-18 02:53:43
能返回多个值么?
具体怎么写?
例如:函数fun(float x),返回|x|和s=1/-1两个值。
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
栗豆 2010-08-18
  • 打赏
  • 举报
回复
呵呵 谢谢大家啦~~

问题解决了~~

非常感谢~~!!!
luojcs 2010-08-18
  • 打赏
  • 举报
回复
要么返回结构体指针即返回一块内存,
要么用函数参数返回
ningweidong 2010-08-18
  • 打赏
  • 举报
回复
返加多个值
可以使用结构和指针,想返回多少个值都可以。
svtanto 2010-08-18
  • 打赏
  • 举报
回复
1、使用引用传递参数
void test(float *result1, int *result2)
{
result1 = 2.0;
result2 = 9;
}
2、把返回值包装成结构体,成为堆栈变量返回
typedef struct a {
float result1;
int result2;
} A, *PA;
A test()
{
A result;
result.result1 = 2.0;
result.result2 = 9;
return result;
}
tietao 2010-08-18
  • 打赏
  • 举报
回复
这里用指针传递,
例如
fun(float* x, float* s)
{
*x = abs(x);
*s = 1/-1;
}

就行了。
栗豆 2010-08-18
  • 打赏
  • 举报
回复
噢.....


[Quote=引用 1 楼 jim_king_2000 的回复:]
不能返回多个值。解决方案:
1、把多个值组成一个结构体,返回结构体类型。缺点是效率低。
2、放弃返回值,改用指针参数。
[/Quote]
Jim_King_2000 2010-08-18
  • 打赏
  • 举报
回复
不能返回多个值。解决方案:
1、把多个值组成一个结构体,返回结构体类型。缺点是效率低。
2、放弃返回值,改用指针参数。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧