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的两种写法,是不是在任何环境和情形下,结果都是一样的?
//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
没return也没关系
需要去g函数都返回值就必须有return
7
凡是有返回值的函数,他的每条路径,都应该有返回值。
14
题主第一种方法是想通过f1内的EAX寄存器里值作为返回值?
PS:暂且不说第一种方式在有的编译器里编译都过不去。
PS:暂且不说第一种方式在有的编译器里编译都过不去。
7
第一种写法有的编译器无法通过,即使通过了也会出现未定义行为。
5
尝试运行了一下是没问题