如果我在不使用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);
}
您可以根据需要定义许多未使用的标签,变量,函数。除非您告诉编译器使用尽可能高的警告级别并将所有警告视为错误,否则它会很好地编译。
从语法上讲,拥有未使用的东西不是错误;通常只是不好的风格。
由于编译器无法知道其中是否存在逻辑错误,因此不会引发错误,因此可能会给您以警告。但是拥有lavel不会破坏您的代码,因此应该允许它编译并运行而没有任何问题。