Variabel am Blockanfang deklarieren und auch definieren
-
Ich habe im Kopf, dass man Variablen in C89 nur am Anfang eines Blockes deklarieren darf. Darf ich einige davon auch gleich definieren und die restlichen danach nur deklarieren? Also darf ich so etwas, wie im Beispiel, machen? Ich will, dass der Code auch auf alten C-Compilern ohne Fehler durchläuft.
{ int i; int j = 1; char c; }
-
Das sind alles Definitionen (und auch Deklarationen).
j wird noch initialisiert.Ja, das geht auch in C89.
Su kannst deinen Compiler auch so einstellen, dass er nur C89 versteht.
-
Kann man eine Variabel nur deklarieren, so wie eine Funktion(Prototyp)?
-
delcare schrieb:
Kann man eine Variabel nur deklarieren, so wie eine Funktion(Prototyp)?
Ja, mit extern. Aber das macht innerhalb einer Funktion herzlich wenig Sinn. Kann es sein, dass du Definition und Initialisierung verwechselst?
-
Danke, ja kann sein, dass ich da was verwechselt habe.
Deklaration = Bekanntmachen des Bezeichners
Definition = Deklaration und Speicher reservieren
Initialisierung = Definition + Startwert zuweisenSo richtig?
-
declare schrieb:
So richtig?
Ja.