【发布时间】:2016-03-13 03:05:48
【问题描述】:
关于空间和时间利用的数量和效率,以下在 C++ 中是否存在差异,答案是否取决于编译器?
int main() {
int a, b = 0;
doSomething1(b);
a = 9;
doSomething2(a);
return 0;
}
int main() {
int a = 0, b = 0;
doSomething1(b);
a = 9;
doSomething2(a);
return 0;
}
int main() {
int b = 0;
doSomething1(b);
int a = 9;
doSomething2(a);
return 0;
}
编辑:此问题已被标记为与this 重复,我认为这是不正确的,因为
- 另一个问题是询问变量——无论它们在函数中的什么位置——是否应该在一开始就声明,或者它们是否应该只在使用它的代码块中声明(即最局部的范围)。
- 我的问题是问是否存在性能差异,在空间或时间方面,在函数的最开始初始化变量,或仅在需要它的点在同一范围内。
请查看此问题的标记。它不是重复的。
【问题讨论】:
-
如果您阅读了重复问题中的答案(在我看来),它似乎可以回答您的问题。重复横幅的重点并不是说这两个问题完全相同,而是重复问题的答案也可以作为该问题的答案。
-
您是否尝试过查看生成的代码(通过您的优化编译器)?
标签: c++ initialization