Veröffentlicht 21. November 201014 j Hallo zusammen, ich hab hier mal ein ganz komisches Problem: Folgendes C-Minimalprogramm void main() { for(int i = 0; i < 1; i++) { } } wirft folgende Fehler in Visual Studio 2010 Warning 6 warning C4552: '<' : operator has no effect; expected operator with side-effect d:\workspace visual studio\projects\a37a\a37a.c 5 Error 1 error C2143: syntax error : missing ';' before 'type' d:\workspace visual studio\projects\a37a\a37a.c 5 Error 2 error C2143: syntax error : missing ';' before 'type' d:\workspace visual studio\projects\a37a\a37a.c 5 Error 4 error C2143: syntax error : missing ';' before 'type' d:\workspace visual studio\projects\a37a\a37a.c 5 Error 9 error C2143: syntax error : missing ';' before '{' d:\workspace visual studio\projects\a37a\a37a.c 6 Error 3 error C2143: syntax error : missing ')' before 'type' d:\workspace visual studio\projects\a37a\a37a.c 5 Error 5 error C2065: 'i' : undeclared identifier d:\workspace visual studio\projects\a37a\a37a.c 5 Error 7 error C2065: 'i' : undeclared identifier d:\workspace visual studio\projects\a37a\a37a.c 5 Error 8 error C2059: syntax error : ')' d:\workspace visual studio\projects\a37a\a37a.c 5 Und komischerweise wird folgendes Programm fehlerfrei kompiliert void main() { int i; for(i = 0; i < 1; i++) { } } Hat jemand irgendeine Ahnung woran das liegen könnte?
21. November 201014 j Hat jemand irgendeine Ahnung woran das liegen könnte?Das liegt daran, dass in C eine Variablendeklaration im Initialisierungsteil der for-Schleife schlicht und einfach nicht erlaubt ist, zumindest nach dem alten Standard von 1989. Im neuen C-Standard von 1999 ist es erlaubt, aber das kann dein Compiler offenbar nicht, oder du musst es exlipizit einschalten. Übrigens, "void main" ist auch falsch, in C89, C99 und C++. Es muss "int main" heißen.
21. November 201014 j http://users.aber.ac.uk/auj/voidmain.shtml Warum int main sinnvoll ist ... Bearbeitet 21. November 201014 j von lilith2k3
21. November 201014 j Erst mal Danke für die schnelle Antwort. Was mich jetzt aber immer noch verwundert, ist dass in manch anderen Projekten (selbe Solution und selber Projekt-Typ) die Variablendekleration in der for-Schleife reibungslos funktioniert.
21. November 201014 j Was mich jetzt aber immer noch verwundert, ist dass in manch anderen Projekten (selbe Solution und selber Projekt-Typ) die Variablendekleration in der for-Schleife reibungslos funktioniert.Vielleicht wird dieser Code als C99 oder C++ kompiliert.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.