Bedeutung switch constraint

08/07/2010 - 11:41 von Heinz Saathoff | Report spam
Moin,

ich habe im Paper ISO-C99-TC1-TC2,
Kapitel 6.8.4.2 'The switch statement', constraints,
folgendes gefunden, was ich nicht recht interpretieren kann:

"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."

Die Fußnote sagt dazu:

"That is, the declaration either precedes the switch statement,
or it follows the last case or default label associated with
the switch that is in the block containing the declaration."


Wie ist das zu verstehen oder wie sàhe Code aus, der diesen constraint
verletzen / einhalten würde?
Außerdem habe ich noch Problem mit dem "variably modified type" und
dessen Bedeutung. C ist ja eine Sprache mit statischen Typen.



- Heinz
 

Lesen sie die antworten

#1 Marcel Müller
08/07/2010 - 11:57 | Warnen spam
Heinz Saathoff wrote:
Wie ist das zu verstehen oder wie sàhe Code aus, der diesen constraint
verletzen / einhalten würde?



switch (i)
{ case 1:
//...
case 2:
int j = 7; // Zulàssig, letztes Label
//...
}

switch (i)
{ case 1:
int j = 7; // Unzulàssig, mitten drin
//...
case 2:
//...
}

int j = 7; // Zulàssig, davor
switch (i)
{ case 1:
//...
case 2:
//...
}

switch (i)
{ int j = 7; // Weiß nicht, frisst mein Compiler aber
case 1:
//...
case 2:
//...
}

Ähnliche fragen