突出差异的最简单示例:
int foo()
{
doSomething();
return 0;
}
void bar()
{
doSomething();
return;
}
int main()
{
foo();
bar();
}
Run Code Online (Sandbox Code Playgroud)
是bar快foo,为什么?
Dav*_*eas 14
这是这样一个微型的优化,你应该永远不会有,甚至考虑它.谈论绩效时常见的警告:
对于返回一个小对象(适合寄存器的东西)的特殊情况,成本可以忽略不计,基本上是大多数体系结构中寄存器的负载.
无效将是......但仍然可以忽略不计.
系统中的返回值通过x86上的eax寄存器传递.在大多数系统中,它只是推入寄存器,然后在返回调用函数时创建对象.并且因为返回这样的东西只会将0发布到eax,这可能是一个较少的汇编命令,因为void可能不会调用它,并且当它返回到调用函数时不需要分配int.
无论哪种方式,这都不会提高您编写的任何应用程序的性能.如果您遇到性能问题,请查看其他位置:)