在C規範case
和default
關鍵字以一節所述6.8.1 作爲標記語句:是大小寫還是默認考慮語句?
labeled-statement:
identifier : statement
**case** constant-expression : statement
**default** : statement
像,例如,if
和switch
在部分被指示6.8.4 作爲選擇語句:
selection-statement:
**if** (expression) statement
**if** (expression) statement **else** statement
**switch** (expression) statement
這些關鍵字都寫在大膽所以第一眼,我可以假設 case
,default
,if
,else
和switch
都被認爲是「聲明」。
然而,之後,寫的是:
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
如此看來,case
和default
被視爲「標籤」而不是「聲明」。
我不明白哪一個是正確的術語,或者case
和default
是語句或標籤。
他們是根據MS聲明,[這裏](http://msdn.microsoft.com/en-us/library/66k51h7a.aspx) – Yann
@Yann在談論關於C標準的MS是完全無關的。 MS不知道或關心標準。 – Lundin
我沒有看到這個問題的問題。這很簡單,詢問'case'和'default'是否是語句或標籤。雖然它似乎是一個簡單的規範誤讀('case expression:'是一個標籤,而整個'case expression:statement'是一個帶標籤的語句),它似乎是一個有效的編程問題,並帶有明確的答案。 – tvanfosson