c++ - 循环中的预递增/递减与使用 gcc 和 Visual C 的递增/递减

标签 c++ c visual-c++

<分区>

我知道有很多关于使用预增量(减量)与后增量的性能提升的问题。据我推断,大多数 C/C++ 编译器都会改变

for (int i =0; i<N; i++)
{
...
}

以下作为优化

for (int i =0; i<N; ++i)
{
...
}

我最近做了很多代码审查,我发现很多情况下我可以将 i++ 更改为++i。问题是只修复好的形式,还是在某些情况下它可以对性能产生影响?

意思是我通常使用的编译器:gcc 和 Visual C++ 会自动进行此优化?也欢迎提供有关其他使用良好的编译的信息。

最佳答案

对于 intdouble 等内置类型,您不会发现任何性能差异。

对于自定义 C++ 类型,您可能会发现差异,具体取决于它们如何实现运算符 - 唯一了解的方法是阅读代码并分析它。

关于c++ - 循环中的预递增/递减与使用 gcc 和 Visual C 的递增/递减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42274568/

相关文章:

python - 你能在 Python 脚本中编译 C++ 吗?

c++ - 分配内存并将其分配给指针C++

qt - 如何对两个具有相同名称的源文件使用qmake?

c++ - GNU C++ 中程序的奇怪行为,使用 float

c++ - 访问头文件中定义的命名空间中的元素

c++ - x/a 与 float 的 x*(1/a) 相同吗?

c - C 中删除结构体成员

不能在 Visual C++ 中包含静态库(.lib)

c++ - 广泛使用的模板为链接器做了多少工作?

visual-c++ - 如何将 H264 DS Filter 与 Directshow GraphEdit 结合使用