阅读背景:

c语言goto的作用域,C语言:goto标签的作用域到底是什么(疑惑)_weixin_39581845的博客

来源:互联网 

白猪掌柜的

标签本身没有作用域的,只是一个标志点。但是goto本身有限制,只能是当前函数。所以,从这个角度来说,标签的作用域也可以说是当前函数。比如123456789void func(){    int a;    a=0;    loop:    a++;    if(a<10) goto loop;    printf("%d",a);}这个程序中,loop标签就与goto配合起到了跳转作用。对于goto来说,这个标签只要是在本函数内的就是合法的,无论是在goto前还是goto后。但是,如下程序:123456789101112int a = 0;void func1(void){    loop:    printf("%d",a);} void func2(void){     a++;     if(a<10)goto loop;}在func2中调用goto使用了func1中的标签loop,在编译的时候就会报错。因为使用goto时只会在本函数中查找该标签。标签本身没有作用域的,只是一个标志点。但是goto本身有限制




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: