Zusätze in C++ werden von g++ nicht akzeptiert?
-
Hallo,
ich habe ein kleines Test-Programm geschrieben, welches Zusätze wie register und unsigned benutzt. Irgendwie scheint das dem Compiler gar nicht zu gefallen:#include <iostream.h> unsigned int y = 0; //y ist vorzeichenlos also von 0 - 4294967295 const int b = 1000 //Konstante b initialisieren int main (void) { register int x = 3333; //Somit wird die Var direkt in einen Register des Prozessors gespeichert, falls der Compiler dies unterstützt! y = 3 * x + b; cout <<y<<"\n"; return 0; }Der Compiler sagt folgendes:
zusaetze.cpp:7: error: parse error before `int' zusaetze.cpp:11: error: ISO C++ forbids declaration of `y' with no type zusaetze.cpp:11: error: conflicting types for `int y' zusaetze.cpp:3: error: previous declaration as `unsigned int y' zusaetze.cpp:11: error: `x' was not declared in this scope zusaetze.cpp:13: error: Syntaxfehler before `<<' token Der Compiler sagt mir folgendes:Würde mich über eine Antwort sehr freuen. Ist mir wirklich unerklärlich!
THX, Michi
-
Achte mal auf die Zeilennummern
Wenn du keine Zeilen weggelassen hast, gehört die erste Fehlermeldung zu "int main()" - und davor taucht auch der Fehler auf: du hast hinter "b" das Semikolon vergessen.
-
#include <iostream.h> unsigned int y = 0; const int b = 1000 // hier gehört ein Semikolon hinter int main (void) { register int x = 3333; // Sinnlos, da heutige Compiler register einfach ignorieren (natürlich ist es immernoch erlaubt y = 3 * x + b; cout <<y<<"\n"; return 0; }
-
Ups.
Vielen Dank. Hab ich irgendwie gar nicht gesehn. Ja, das weiß ich mit register, wollts aber mal testen.
THX,Michi