c**********e 发帖数: 2007 | 1 假设有如下函数:
int plusOne(int x) {
x++;
return x;
}
这种写法是不是很蠢?因为 x 既是输入变量又是一个局部变量。
对于这个具体问题来说,当然我们可以写成
int plusOne(int x) {
return x+1;
}
但是有时候复杂一点的情况,没法这么做。是不是得写成下面这样子?
int plusOne(int x) {
int y=x+1;
return y;
}
输入变量和一个局部变量倒是分清了,只是要多用一个变量。
大侠们怎么看? |
d****n 发帖数: 1637 | 2 Do some real projects rather than be paranoid in details will help your
career changing a lot more. |
a9 发帖数: 21638 | 3 一样的吧。
还不如
int *plusOne(int *x){
++(*x);
return x;
}
【在 c**********e 的大作中提到】 : 假设有如下函数: : int plusOne(int x) { : x++; : return x; : } : 这种写法是不是很蠢?因为 x 既是输入变量又是一个局部变量。 : 对于这个具体问题来说,当然我们可以写成 : int plusOne(int x) { : return x+1; : }
|
c**********e 发帖数: 2007 | 4 老大,我能把一个大项目的贴在这里吗?即便我能贴在这儿,您有时间仔细看吗?没办
法,只有把问题提炼出来再问。
【在 d****n 的大作中提到】 : Do some real projects rather than be paranoid in details will help your : career changing a lot more.
|
d****n 发帖数: 1637 | |
x****u 发帖数: 44466 | 6 不必管这些细节,编译器都给你优化掉。
【在 c**********e 的大作中提到】 : 假设有如下函数: : int plusOne(int x) { : x++; : return x; : } : 这种写法是不是很蠢?因为 x 既是输入变量又是一个局部变量。 : 对于这个具体问题来说,当然我们可以写成 : int plusOne(int x) { : return x+1; : }
|
f**********2 发帖数: 2401 | 7 这属不属于回的四种写法问题?觉得能用就行了,效率也差不多,没区别 |
m*****e 发帖数: 4193 | 8
LOL
【在 f**********2 的大作中提到】 : 这属不属于回的四种写法问题?觉得能用就行了,效率也差不多,没区别
|
X****r 发帖数: 3557 | 9 通常情况下,不是修改已有变量的值而是用一个新变量会增加程序的可读性,也更不容
易出错。
当然,这个不适用于循环里的累加器之类的情况。
【在 c**********e 的大作中提到】 : 假设有如下函数: : int plusOne(int x) { : x++; : return x; : } : 这种写法是不是很蠢?因为 x 既是输入变量又是一个局部变量。 : 对于这个具体问题来说,当然我们可以写成 : int plusOne(int x) { : return x+1; : }
|
x****u 发帖数: 44466 | 10 现在编译器都给你处理掉。
【在 X****r 的大作中提到】 : 通常情况下,不是修改已有变量的值而是用一个新变量会增加程序的可读性,也更不容 : 易出错。 : 当然,这个不适用于循环里的累加器之类的情况。
|
g*****g 发帖数: 34805 | 11 你如果有大项目调优的经验,就知道性能从来不是从这些
地方抠出来的。写可读性好的代码比别的有用得多。 |
c***r 发帖数: 4631 | 12 你这三个编译之后都是
movl 4(%esp), %eax
incl %eax
ret |
g******n 发帖数: 253 | 13 正解
【在 x****u 的大作中提到】 : 不必管这些细节,编译器都给你优化掉。
|