[gcc] im C89-Mode kann ich immer noch Variabeln nach Anweisungen deklarieren
-
Hi,
warum kann ich mit dem gcc(4.7) und der Option -std=C89 immer noch Variabeln nach einer Anweisung deklarieren? Dies müsste doch einen fetten Fehler werfen, oder täusche ich mich jetzt da?
-
Die Lösung ist:
-Werror=declaration-after-statement
-
Die allgemeinere und damit bessere Lösung, weil hierbei alle nicht standardkonformen GCC-Erweiterungen und nicht nur eine rausfliegen ist:
-ansi -pedanticbzw. komplett
-ansi -pedantic -Wallbzw.
-ansi -pedantic -Wall -Wextra
-
Oh ja danke, Mensch da hatte ich noch jede Menge Fehler drin die ich sonst nie gefunden hätte.
Beispielsweise gehen unnamed unions und structs in C89 nicht und man kann sie auch nicht einfach so ansprechen, sondern muss dann auch immer den Namen mit angeben.