相关疑难解决方法(0)

使用goto有什么问题?

可能重复:
为什么使用goto不好?
GOTO仍被视为有害吗?

我通过xkcd进行了调整,看到了这个(几年前还读了一些关于它们的负面文章):
你的慢连接很糟糕,得到一个更快的看到这个图像
这究竟是什么问题?为什么goto甚至可以在C++中使用呢?

我为什么使用它们?

c++ goto

106
推荐指数
6
解决办法
7万
查看次数

错误:跳转到标签'foo'越过'bar'的初始化

以下C++示例无法使用gcc或clang进行编译,但仅使用ICC生成警告,并且对MSVC一无所知:

int main(int argc, char *argv[])
{
    if (argc < 2)
        goto clean_up;

#if 1   // FAIL
    int i = 0;
#elif 0 // workaround - OK
    {
        int i = 0;
    }
#else   // workaround - OK
    int i;
    i = 0;
#endif

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

克++:

init.cpp:13: error: jump to label ‘clean_up’
init.cpp:4: error:   from here
init.cpp:7: error:   crosses initialization of ‘int i’
Run Code Online (Sandbox Code Playgroud)

铛++:

init.cpp:4:9: error: cannot jump from this goto statement to its label
        goto clean_up; …
Run Code Online (Sandbox Code Playgroud)

c++ gcc clang icc visual-c++

6
推荐指数
1
解决办法
3055
查看次数

标签 统计

c++ ×2

clang ×1

gcc ×1

goto ×1

icc ×1

visual-c++ ×1