Etiketten, die in N1256 definiert sind. 6.8.1 Beschriftete Anweisungen, können nur Anweisungen enthalten.
Syntax
1 labeled-statement:
identifier : statement
case constant-expression : statement
default : statement
int ret = function(of, stuff);
ist eine Erklärung, die in N1256 6.7 Erklärungen definiert und ist keine Aussage.
Statements sind unten in N1256 6,8-Anweisungen und Blöcke definiert:
Syntax
1 statement:
labeled-statement
compound-statement
expression-statement
selection-statement
iteration-statement
jump-statement
compound-statement
wird Blöcke, sogenannte die 0 oder mehr Erklärungen und durch {}
umgeben Aussagen.
expression-statement
ist Null oder ein Ausdruck definiert in N1256 6.5 Ausdrücke, gefolgt von einem Semikolon wie i++;
. Der Ausdruck in der Syntax ist in N1256 6.5.17 Komma Operator definiert.
selection-statement
ist if
und switch
Anweisung.
iteration-statement
ist while
, do-while
und for
Aussage.
jump-statement
ist goto
, continue
, break
und return
Aussage.
Wie Sie sehen, sind Deklarationen keine Anweisung, Sie können also keine Beschriftungen zu Deklarationen hinzufügen.
"Vielleicht würde sich jemand für die Verteidigung des C-Standards einsetzen, um zu behaupten, dass das vollkommen Sinn macht" - nun, Sie sind sicherlich an der richtigen Stelle angekommen. –
Warum diese Stimmen stimmen ...: -S - eine faire Frage, an die ich mich noch gut erinnere ...:-) – alk
Offenbar geht es bei Fragen zu einer Programmiersprache nicht um Programmierung? –