C 在 for 循环中声明 int

新手上路,请多包涵

好久没用C++了。我一直依靠我的 Java 编译器来进行优化。

在 C++ 中执行 for 循环的最优化方法是什么?或者现代编译器现在都一样了吗?在“旧时代”,情况有所不同。

 for (int i=1; i<=100; i++)

或者

int i;
for (i=1; i<=100; i++)

或者

int i = 1;
for ( ; i<=100; i++)

在C语言中是一样的吗?

编辑: 好的,所以压倒性的共识是使用第一种情况并让编译器根据需要对其进行优化。

原文由 Yada 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 987
2 个回答

我想说像这样的琐碎事情可能已经被编译器优化了,你不应该担心它们。第一个选项是最易读的,所以你应该使用它。

编辑:添加其他答案所说的内容,还有一个区别是,如果您在循环初始化程序中声明变量,它将在循环结束后停止存在。

原文由 Javier 发布,翻译遵循 CC BY-SA 2.5 许可协议

一样的。编译器会将这些优化为相同的东西。

即使它们不相同,与循环的实际主体相比的差异也可以忽略不计。你不应该担心这样的微优化。除非您进行性能分析以查看它是否真的有所作为,否则您不应该进行微优化。

原文由 Mark Byers 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏