求问一个条件分支优化的小问题
linux吧
全部回复
仅看楼主
level 8
out_Run 楼主
假如有代码如下:
if [CONDITION A]{
[CODE A]
return;
}
[CODE B]
是不是写成下面的形式会更好呢:
if [CONDITION A]{
[CODE A]
return;
}else{
[CODE B]
}
听说下面这么写编译是时候会有优化?
但上面的写法比较好看,因为会少一层括号
吧友在写代码的时候一般是怎么写的?
2015年10月10日 06点10分 1
level 8
逻辑上没有区别,不要考虑优化的事。那是编译器的工作。
第二种可读性和扩展性都好一些,第一种仅仅是少打几个字而已。
2015年10月10日 07点10分 3
第一种可以少一层缩进,可读性提高很多的
2015年10月10日 15点10分
@out_Run 我觉得 if - else 结构更清晰一些,也是本来要表达的含义,第一种给人一种感觉:要想一下或者看到return才能明白,原来它是一个分支结构
2015年10月10日 15点10分
个人感觉第一种好:更简洁;突出了 return
2015年10月10日 17点10分
level 14
同意三楼,逻辑上和可读性上第二种都更好一些
  --早苗说过了,能哭的地方只有厕所,和爸爸的怀里..
2015年10月11日 07点10分 4
但如果CODE B的代码量远大于CODE A,一般会选择第一种
2015年10月11日 07点10分
level 13
楼主你想多了。
C源码:
gcc -O0 -S的输出:
可以看到两个函数的汇编代码是一模一样的。
而gcc -O2 -S的输出:
等一下,我的func1去哪了?没错,变成了jmp func2了……
所以,老老实实的写你的代码去吧,代码怎么看着舒服就怎么写,编译器会做好它的本职工作的。
2015年10月11日 09点10分 5
最后:年轻人好好写代码,不要想那么多只有编译器才该去想的事。
2015年10月11日 09点10分
1