C语言中的for... while循环语法混淆

beq87vna  于 2023-02-03  发布在  其他
关注(0)|答案(1)|浏览(116)

我无意中注意到下面的代码片段是在GCC下编译的:

void myFunction(void) {
    int i, y = 0;
    for (i = 0; i < 10; i++)
        y++;
    while (y);
}

我以前从未遇到过这样的代码,在四处搜索之后也找不到关于这样一个构造的任何信息。这让我想知道这样一个构造的目的是什么,它意味着做什么?

q8l4jmvw

q8l4jmvw1#

没有for ... while循环这种东西。
你看到的是两个独立的回路。
首先,有一个for循环,循环体中唯一的指令是y++;
然后你会看到另一个循环:while(y) ;。这与for循环完全无关。主体仅由空指令;组成。由于y在主体中从不改变,因此这将是无限循环。

相关问题