2017-01-14 4 views
2

Ich bin neu in c und ich habe eine schwere Zeit zu verstehen, warum bekomme ich einen Fehler beim Versuch, den folgenden Code in c zu kompilieren Ich glaube, ich habe es versucht Java und es funktionierte perfekt ohne kompiliert FehlerFehlermeldung Variablendeklaration in C

void f(void) { 
    int i; 
    i = 6; 
    int j; 
    j = 20; 
} 
+2

In Standard C müssen alle Variablen vor jeder ausführbaren Anweisung deklariert werden. Also muss "j" vor "i = 6;" deklariert werden. – DyZ

+2

[Diese kompiliert fein] (http://ideone.com/HbMeQI). – dasblinkenlight

+3

@DYZ In * alten * Varianten des C-Standards. "Modern" C (wie C99 denke ich, vielleicht früher?) Erfordert es nicht. –

Antwort

4

In "alten" C müssen alle Deklarationen an der Spitze der Funktionen sein. In späteren Versionen wie C99 können C-Deklarationen überall im Code sein. Ich nehme an, Sie haben einen alten Compiler.

0

Code ändern zu

void f(void) { 
    int i; 
    int j; 
    i = 6; 
    j = 20; 
} 

Das Problem ist, dass für einige alte Compiler Sie die Variablen, bevor eine ausführbare Anweisung deklarieren müssen. Wenn Sie dieses Problem nicht haben möchten, wechseln Sie zu einem neueren Compiler.

0

Wenn Ihr Compiler nach c98 für die Kompilierung von c-Code konfiguriert ist, erhalten Sie diesen Fehler, weil nach dem c98-Standard zuerst die Deklaration von Variablen erfolgen muss, dann können wir die Deklaration der Variablen in der Mitte vornehmen des Codes.

Sie können jedoch die Option wählen, um Ihren Code nach dem Standard c99 zu kompilieren, und in diesem Fall können Sie die Variable in der Mitte Ihres Codes deklarieren.