Gre*_*ton 2 c++ arduino undefined-behavior
在 Arduino Uno 上,当在不返回任何内容的 int 函数中时,for 循环的行为非常奇怪。
void setup() {
Serial.begin(9600);
}
void loop() {
foo();
Serial.println("Never reached");
}
int foo() {
for (int i = 0; i < 9; i++) {
Serial.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容,并继续无限循环通过 ASCII ...
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
Run Code Online (Sandbox Code Playgroud)
此外,将 for 条件设为 i < 12 使其永远以数字方式计数,没有任何 ASCII 输出。
这都是通过添加return 0;到 foo() 来解决的,但我很好奇为什么会发生这种情况。有任何想法吗?
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |