在我大学的 C++ 课程中,我习惯了(并被教导)在for 循环中声明 int 的做法,如下所示:
for(int i = 0; i < 5; i++)
{
// code
}
Run Code Online (Sandbox Code Playgroud)
但是现在我在一个机电一体化课上,我们用 c 和 Arduino 编写,老师告诉我这样做是不好的做法,并建议这样做:
int i = 0;
for(i; i < 5; i++)
//code
Run Code Online (Sandbox Code Playgroud)
为什么一个比另一个更受欢迎?
《机电班》
我将采用合理的猜测。
您拥有的编译器可能是愚蠢的并编译了这个
for(int i = 0; i < 5; i++) {
//code
}
for(int i = 0; i < 5; i++) {
//code
}
Run Code Online (Sandbox Code Playgroud)
使用两个独立的堆栈变量。现代编译器比这更好,但嵌入式系统有旧的愚蠢编译器,老教师在问题修复后很长一段时间都会记住这些问题。鉴于这是 Arduino,如果你有一个最新的编译器,那么它现在就完全错误了。
我记得使用的编译器会在这段代码上爆炸,i并且已经声明,但我离题了。
为什么一个比另一个更受欢迎?
例如,在您提前退出循环的情况下,您可能想知道它的最后一个值i当然只有在循环外声明时才能访问。因此,在这种情况下,这是唯一的选择(除非您为此使用单独的变量,但这会增加不必要的复杂性)。
但通常当两者都是有效选项时,在尽可能小的范围内声明所有变量可能会稍微更有效,更容易阅读 - 尽管后者可能是主观的,所以这主要是一个品味问题。前者客观上不是一般的“不良做法”。
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |