C++ 使用gcc和Visual C时,循环中的预增量/减量与后增量/减量

C++ 使用gcc和Visual C时,循环中的预增量/减量与后增量/减量,c++,c,visual-c++,C++,C,Visual C++,我知道有很多关于使用增量前减量与post相比性能提升的问题。根据我的推断,大多数C/C++编译器都会改变 for (int i =0; i<N; i++) { ... } 将以下内容作为优化 for (int i =0; i<N; ++i) { ... } 最近我做了很多代码审查,我发现许多实例可以将I++更改为++I。问题是,你是在做一件好事,还是在某些情况下,它能改变你的表现 意思是我通常使用的编译器:GCC和VisualC++会自动进行优化吗?还欢迎提供有关其他常用编译器的

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

for (int i =0; i<N; i++)
{
...
}
将以下内容作为优化

for (int i =0; i<N; ++i)
{
...
}
最近我做了很多代码审查,我发现许多实例可以将I++更改为++I。问题是,你是在做一件好事,还是在某些情况下,它能改变你的表现

意思是我通常使用的编译器:GCC和VisualC++会自动进行优化吗?还欢迎提供有关其他常用编译器的信息。

对于int或double等内置类型,您不会看到性能上的任何差异


对于自定义C++类型,您可能会看到它们是如何实现操作符的,只有知道代码和配置文件才是正确的。

我想即使编译器也会有一个更一致、美观的样式。另外,只需使用不同的优化选项从源代码生成程序集,然后自己检查。这并不难。请注意,虽然myTestVal