【发布时间】:2017-06-22 19:52:09
【问题描述】:
这两个函数在代码执行方面有什么区别。结果是一样的,但是编译器会优化到同一个输出的程序集吗?
void some_func()
{
if (!something)
return;
//rest of code
}
void other_func()
{
if (something) {
//rest of code
}
}
【问题讨论】:
-
为什么不直接检查编译器输出?
-
没有区别。编译器是否会同样优化它们取决于编译器。
-
但即使没有,差异也可以忽略不计。
-
我在检查前置条件(或抛出异常)时使用 case(1)。它使(前置条件的)测试结束和实际代码开始的位置变得很明显。
标签: c++