小编Gre*_*ton的帖子

For 循环不会在没有 return 语句的 int 函数中终止

在 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() 来解决的,但我很好奇为什么会发生这种情况。有任何想法吗?

c++ arduino undefined-behavior

2
推荐指数
1
解决办法
113
查看次数

标签 统计

arduino ×1

c++ ×1

undefined-behavior ×1