突出差异的最简单示例:
int foo()
{
doSomething();
return 0;
}
void bar()
{
doSomething();
return;
}
int main()
{
foo();
bar();
}
bar
比 快foo
,为什么?
突出差异的最简单示例:
int foo()
{
doSomething();
return 0;
}
void bar()
{
doSomething();
return;
}
int main()
{
foo();
bar();
}
bar
比 快foo
,为什么?
这是一个如此微的优化,您甚至不必考虑它。然而,在谈论性能时通常需要注意:
至于返回一个小对象(适合寄存器的东西)的特殊情况,成本将可以忽略不计,基本上是在大多数架构中加载到寄存器中。
无效将是..但仍然可以忽略不计。
系统中的返回值通过 x86 上的 eax 寄存器传递。在大多数系统中,它只是压入寄存器,然后可能在返回调用函数时创建对象。并且由于返回这样的内容只会将 0 发布到 eax ,这可能会减少一个汇编命令,因为 void 可能不会调用它,并且在返回调用函数时不需要分配 int 。
无论哪种方式,这都不会提高您编写的任何应用程序的性能。如果您有性能问题,请查看其他地方:)