如果我在程序中写了不带goto语句的标签,会发生什么?

问题描述 投票:0回答:2

如果我在不使用goto语句的情况下写标签,则程序将在程序流中运行。为什么编译器不为标签抛出错误?

#include<stdio.h>

int print(int a);

main()
{
    int a = 7;
hhh:
    print(a);
    if (a == 0)
        return;
    else
        --a;
    return;
}

int print(int a)
{
    printf("%d", a);
}
c error-handling label goto
2个回答
0
投票

您可以根据需要定义许多未使用的标签,变量,函数。除非您告诉编译器使用尽可能高的警告级别并将所有警告视为错误,否则它会很好地编译。

从语法上讲,拥有未使用的东西不是错误;通常只是不好的风格。


0
投票

由于编译器无法知道其中是否存在逻辑错误,因此不会引发错误,因此可能会给您以警告。但是拥有lavel不会破坏您的代码,因此应该允许它编译并运行而没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.