为什么
例如,以下语句是不正确的。
没有花括号,编译器在声明时会出现歧义。对于我(一个C语言初学者)来说,似乎每个case语句应该有一个隐含的花括号,直到下一个case/default/end-of-switch出现,但这显然是错误的!
case
语句允许在花括号内部进行声明,而在外部则不行?例如,以下语句是不正确的。
switch (op->name) {
case 0:
int a = 2;
case 1:
int b = 3;
}
但是下面这个是可以的:
switch (op->name) {
case 0:
{int a = 2;}
case 1:
{int b = 3;}
}
没有花括号,编译器在声明时会出现歧义。对于我(一个C语言初学者)来说,似乎每个case语句应该有一个隐含的花括号,直到下一个case/default/end-of-switch出现,但这显然是错误的!
case
标签不会创建“隐含的花括号”。 - Raymond Chenswitch
语句后面确实需要一个左花括号。 - user3386109case
。无论如何,我已经从问题中删除了该case
,因为它是错误的。 - samuelbrody1249