Deklaration einer Variablen nicht mehr am Anfang?
-
Im C99-Standard muss die Deklaration einer Variablen nicht mehr am Anfang eines Anweisungsblocks erfolgen.
habe gerade folgendes gelesen und bin doch sehr erstaunt - stimmt das?
-
Vertexwahn schrieb:
Im C99-Standard muss die Deklaration einer Variablen nicht mehr am Anfang eines Anweisungsblocks erfolgen.
habe gerade folgendes gelesen und bin doch sehr erstaunt - stimmt das?
ja, das stimmt. Aber ich halte mich persönlich nicht daran, weil ich der Meinung bin, dass alle Variablen am Anfang des Anweisungsblocks zu mehr Lesbarkeit führen.
-
mmmh... MsVC Net 2003 mekert mich immer an, wenn ich ein Variblendefinition miten im Anweisungsblock mache - kann man das irgendwie ausstellen?
-
supertux schrieb:
ja, das stimmt. Aber ich halte mich persönlich nicht daran, weil ich der Meinung bin, dass alle Variablen am Anfang des Anweisungsblocks zu mehr Lesbarkeit führen.
naja - ich finde es halt doof, wenn ich für ne schleife einen Zähler benötigt habe und diesen Zähler dann nicht einfach in der Schleife definieren kann - z. B.: for(int counter; counter < 10; counter++) funzt ja vor C99 nicht (?oder?) - dumm ist halt nur das mein Compiler nicht C99 Konform ist
-
Vertexwahn schrieb:
naja - ich finde es halt doof, wenn ich für ne schleife einen Zähler benötigt habe und diesen Zähler dann nicht einfach in der Schleife definieren kann
Ich habe mir deshalb
{ int i; for(i=0; i<foo; ++i) { bar(); } }
angewöhnt
-
Vertexwahn schrieb:
supertux schrieb:
ja, das stimmt. Aber ich halte mich persönlich nicht daran, weil ich der Meinung bin, dass alle Variablen am Anfang des Anweisungsblocks zu mehr Lesbarkeit führen.
naja - ich finde es halt doof, wenn ich für ne schleife einen Zähler benötigt habe und diesen Zähler dann nicht einfach in der Schleife definieren kann - z. B.: for(int counter; counter < 10; counter++) funzt ja vor C99 nicht (?oder?) - dumm ist halt nur das mein Compiler nicht C99 Konform ist
Nach C99 sollte gehen
rex@supertux:~> echo -e "void foo(void)\n{\tfor(int i=0; i<10; ++i);\n}" > test.c rex@supertux:~> gcc -c test.c --std=c99 rex@supertux:~>
Mein gcc (3.3.5) liefert da weder Warnungen noch Fehler zurück.
-