c 语言返回值调用,调用方式的优劣?

问个问题, 为什么函数调用不能直接return 某个函数的返回值,而要用个临时变量接收一哈,再进行返回。

 

int  sum()

{

 

}

 

int add ()

{

return sum ();

} 错误!

int add ()

{

int tmp;

tmp = sum ();

return tmp;

} 正确!

为什么要这样写,直接返回有什么缺陷吗?

1、错误到底是什么错误?语法错误还是返回值错误?

2、应该没有这样的规定,可以return某个函数的返回值

没问题哇也没想到其他可能性。

是报了什么错,截图。

int  sum()
{
 
    return 0;
}

int add()
{
    return sum ();
}

int main()
{
    add();
    return 0;
}

 

你的sum()这个函数没有返回值,你写个返回值就正确了。

肯定是可以直接return sum ();

递归函数,各种的,都是直接这样return的。

这么写就是为了便于后续使用呗,你这种是只有一个地方使用,万一后面也需要使用这个量,那就得改了,习惯问题吧,反正多个赋值操作也要不了多少时间。

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^