相关疑难解决方法(0)

i ++比++ i效率低,如何展示?

我试图通过示例显示前缀增量比后缀增量更有效.

理论上这是有道理的:i ++需要能够返回未增加的原始值并因此存储它,而++我可以返回增量值而不存储先前的值.

但是有一个很好的例子可以在实践中证明这一点吗?

我尝试了以下代码:

int array[100];

int main()
{
  for(int i = 0; i < sizeof(array)/sizeof(*array); i++)
    array[i] = 1;
}
Run Code Online (Sandbox Code Playgroud)

我使用gcc 4.4.0编译它,如下所示:

gcc -Wa,-adhls -O0 myfile.cpp
Run Code Online (Sandbox Code Playgroud)

我再次这样做,后缀增量更改为前缀增量:

for(int i = 0; i < sizeof(array)/sizeof(*array); ++i)
Run Code Online (Sandbox Code Playgroud)

在两种情况下,结果都是相同的汇编代码.

这有些出乎意料.似乎通过关闭优化(使用-O0)我应该看到显示概念的差异.我错过了什么?有更好的例子来展示这个吗?

c++ optimization prefix postfix-operator

15
推荐指数
3
解决办法
8836
查看次数

标签 统计

c++ ×1

optimization ×1

postfix-operator ×1

prefix ×1