案例和默认是否被视为陈述?

时间:2014-06-16 13:01:51

标签: c

在C规范中,casedefault关键字在6.8.1节中指出 作为标记声明:

labeled-statement:
identifier : statement
**case** constant-expression : statement
**default** : statement
例如,{6.8}中指出了ifswitch 作为选择陈述:

selection-statement:
**if** ( expression ) statement
**if** ( expression ) statement **else** statement
**switch** ( expression ) statement

这些关键字都是用粗体编写的,所以乍一看我可以这么认为 casedefaultifelseswitch都被视为“陈述”。

然而,之后,写道:

If a switch statement has an associated case or default label within the scope of an
identifier with a variably modified type, the entire switch statement shall be within the
scope of that identifier

所以似乎casedefault被视为“标签”,而不是“声明”。

我不明白哪个是正确的术语,或者casedefault是语句或标签。

1 个答案:

答案 0 :(得分:1)

很明显,我看不出有什么混乱。

C99 6.8.1 / 2

  

casedefault标签只能出现在switch声明中。

您只引用 6.8.1标记语句的标题。