【发布时间】:2017-04-08 07:55:03
【问题描述】:
有时我需要在 C/C++ 中编写一个循环,其中有一个初始化,然后是一个条件。
我喜欢这个样子,
for (int i = 0, j = 0; i == 0 && j == 0;) {
// condition fails at some point
}
不止于此。
int i = 0, j = 0;
while (i == 0 && j == 0) {
// condition fails at some point
}
当然,这是个人代码,所以没有人可以评判我。编译器会让它们成为同一个东西吗?
【问题讨论】:
-
变量作用域不同。
-
我假设 i 和 j 只能在 for 循环中使用;那对我来说没问题。
-
它当然可以生成同义代码。例如,for-loop 和 while-loop。这并不意味着编译器必须生成相同的代码。您始终可以通过使用两者来检查自己,然后拆卸和比较。