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


Anmelden zum Antworten