代码会顺序通过多个标签定义执行吗?

bol*_*ing 0 c

这可能是一个愚蠢的问题,我很震惊我在谷歌搜索它,但这里有:

在这种情况下会发生什么:

int foo(void){
     char x = 1;

     if (x == 1}
         goto apple;
     }
     else{
         goto banana;
     }

apple:
    printf("apple");

banana:
    printf("banana");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果x==1输出是

 apple
 banana
Run Code Online (Sandbox Code Playgroud)

或者只是apple停在标签的末尾?像代码一样继续逐行执行并输入另一个标签?

小智 5

如果x == 1,则输出为

 apple
 banana
Run Code Online (Sandbox Code Playgroud)

是的,它会的.标签(标签gotoswitch标签)都会掉落.