1

可能重复:
为什么不能在 switch 语句中声明变量?

我在那里看到,在 C 中,变量的初始化可以通过跳转语句跳过,如下例所示:

/* valid in C but not C++ */

int main()
{
    switch (1)
    {
    case 0:
        int foo = 0;
        break;
    case 1:
        ++foo;
    }

    return 0;
}

但是当我尝试用 Comeau 编译器编译它时,会出现错误:

“ComeauTest.c”,第 8 行:错误:声明不能有标签 int foo = 0;^

“ComeauTest.c”,第 5 行:警告:控制转移绕过初始化:变量“foo”(在第 8 行声明)开关 (1) ^

4

0 回答 0