c++ - 为什么 C++ 不必要的循环使程序更快?

标签 c++ visual-c++ compiler-optimization

我在一些有竞争力的编程网站上练习,比如 UVaLOj并多次注意到(10 次或更多次!)在我的程序中放置了一个不必要的循环,例如,将其放在程序的开头-

for (int _delay = 0; _delay < 500000000; _delay++ );

让它比往常运行得更快(!),并给我更好的排名。我已经一遍又一遍地重新提交,但这种情况一直在发生。 我的问题是这怎么可能?只是巧合(发生了很多次)还是编译后的程序由于某种原因得到了优化?

最佳答案

我认为大多数编译器会忽略您提到的以下语句:

for (int _delay = 0; _delay < 500000000; _delay++ );

因为 for 循环除了修改作用域仅在 for 循环内的局部变量外什么都不做。

至于上面的说法让整个程序更快......我不认为它可以......

关于c++ - 为什么 C++ 不必要的循环使程序更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280839/

相关文章:

javascript - 在已编译的 GWT 代码中实例化对象

vector - 可以在没有额外分配的情况下移动和修改矢量吗?

c++ - 这种带有 __m256 值数组的错误代码生成是 clang 错误吗?

c++ - 如何从掷骰子中找到最小值和最大值?

c++ - 我应该如何创建一个可以在 OSX 下的 Sublime Text 3 中使用 STDIN 的构建系统?

c++ - 数组指针的 vector c++

c++ - 对象指针随机指向 0x00000

c++ - 引用相同变量的函数参数

c++ - 在 stub 中运行函数。传递函数指针

c++ - 警告 C4996 : This function or variable may be unsafe -- compared to GCC on POSIX