deklaration ohne bezeichner
-
hallo,
ich wollte wissen ob laut ANSI C eine variablendeklaration ohne bezeichner erlaubt ist. also sowas wie:
char;
sowohl msvc++6 als auch gcc3.4.4 scheinen das zu ohne fehler, aber mit warnung zu schlucken.
-
Meines Wissens ist das nicht gültig, da der Declarator nicht optional ist. Letztendlich aber auch vollkommen egal, da die Zeile sowieso keinen Sinn macht.
-
Laut dieser Seite ist es nicht erlaubt:
http://www.csci.csusb.edu/dick/samples/c.syntax.html#type_specifier
-
ich hab es jetzt mal im C standard (als buch) nachgeguckt. dort ist eine grammatik drin, die solche deklarationen tatsächlich erlaubt.
-
hmmmm schrieb:
ich hab es jetzt mal im C standard (als buch) nachgeguckt. dort ist eine grammatik drin, die solche deklarationen tatsächlich erlaubt.
meinste 6.7 (declarations) absatz 1 (das 'opt' dahinter) und 6.7.2 ?
-
net schrieb:
meinste 6.7 (declarations) absatz 1 (das 'opt' dahinter) und 6.7.2 ?
kann ich dir leider gerade nicht sagen. das buch gehört einem arbeitskollegen. aber ja, ich hab bei den regeln für declaration nachgeguckt.
declaration => declaration-specifier ; => type-specifier ; => char ;
oder so ähnlich. ich kann es nicht mehr ausm kopf sagen, aber ich bin mir sicher, dass diese grammatik eine ableitung für eine declaration erlaubt hatte, die direkt zu "char ;" führte.
-
Die Grammatik beschreibt die Sprache aber nicht vollständig. Das geht schon aus dem Grunde nicht, weil die Grammatik kontextfrei ist, die Sprache aber nicht.