Code Bye

讨教:这种情形下,不写return有没有问题

int f (int n) {
//do something
return n + 1;
}
//
//
int g (int n) { //第一种写法
//do something
f (n);
}
int g (int n) { //第二种写法
//do something
return f (n);
}
讨教:函数g的两种写法,是不是在任何环境和情形下,结果都是一样的?
解决方案

7

本质上是不一样的
不过凑巧的话,可能是一样的

7

假如不需要取g函数都返回值
没return也没关系
需要去g函数都返回值就必须有return

7

凡是有返回值的函数,他的每条路径,都应该有返回值。

14

题主第一种方法是想通过f1内的EAX寄存器里值作为返回值?
PS:暂且不说第一种方式在有的编译器里编译都过不去。

7

第一种写法有的编译器无法通过,即使通过了也会出现未定义行为。

5

尝试运行了一下是没问题

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教:这种情形下,不写return有没有问题