vor ; fehlt ) und vor = fehlt ; ???????



  • Man arbeitet mit zeigern + arrays. außerdem will man in eckigen klammern + ähm... als adressoffsets konstanten verwenden, der code sieht ungefähr so aus:

    void ThStdLohn(float *retval,
    				float FSek = 10.5, 
    				int SFlaschen = 12, 
    				float ScSek = 8.3, 
    				float klSek = 5.4, 
    				float karZeit =5.0, 
    				float ugkt = 31.3, 
    				float PlZeit = 300.0, 
    				float KarWechselZeit = 20.0,				
    				int PalKar = 4*4*4)
    {
    
    //... bla bla bla...
    
    	*(retval+STDLN) = ( 3600/Zeit )*EproL;
    	*(retval+SKPF) = FlaZeit;
    	*(retval+SFMKAR) = FlZeit;
    	*(retval+SFMPAL) = Zeit;
    }
    

    jetzt meckert der Compiler rum, wichtig sind dabei nur die Zeiger unten, denn diese verursachen die Fehler:

    .\mctrb.cpp(384) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    .\mctrb.cpp(384) : error C2059: Syntaxfehler: ')'
    .\mctrb.cpp(384) : error C2143: Syntaxfehler: Es fehlt ';' vor '='
    .\mctrb.cpp(385) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    .\mctrb.cpp(385) : error C2059: Syntaxfehler: ')'
    .\mctrb.cpp(385) : error C2143: Syntaxfehler: Es fehlt ';' vor '='
    .\mctrb.cpp(386) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    .\mctrb.cpp(386) : error C2059: Syntaxfehler: ')'
    .\mctrb.cpp(386) : error C2143: Syntaxfehler: Es fehlt ';' vor '='
    .\mctrb.cpp(387) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    .\mctrb.cpp(387) : error C2059: Syntaxfehler: ')'
    .\mctrb.cpp(387) : error C2143: Syntaxfehler: Es fehlt ';' vor '='
    

    Dasselbe, wenn man versucht, das ganze Als Arrayelemente aufzurufen

    // nach Funktionsaufruf in den buffer kopieren
        sprintf_s(buf, sizeof(buf),"texttext: %.2f\n%s%s%s%.2f%s%.2f%s%.2f",
    		retval[STDLN],
    		"texttext\n",
    		"texttext\n",
    		"texttext      : ",
    		retval[SKPF],
    		"texttext    : ",
    		retval[SFMKAR],
    		"textext: ",
    		retval[SFMPAL]);
    

    die entsprechenden Fehler:

    .\main.cpp(564) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'
    .\main.cpp(564) : error C2143: Syntaxfehler: Es fehlt ']' vor ')'
    .\main.cpp(564) : error C2143: Syntaxfehler: Es fehlt ';' vor ']'
    .\main.cpp(568) : error C2143: Syntaxfehler: Es fehlt ';' vor ']'
    .\main.cpp(570) : error C2143: Syntaxfehler: Es fehlt ';' vor ']'
    .\main.cpp(572) : error C2143: Syntaxfehler: Es fehlt ';' vor ']'
    .\main.cpp(572) : error C2059: Syntaxfehler: ')'
    

    Wenn ich Zahlen anstelle von Konstanten verwende, läuft alles wunderbar, ich könnte mir aber nach ner Zeit die ganzen Konstanten nicht im Kopf behalten 🙂 gibts es denn keine Möglichkeit dafür?



  • AzraelilMeraz schrieb:

    Wenn ich Zahlen anstelle von Konstanten verwende, läuft alles wunderbar...

    wie sehen deine konstanten aus? etwa so

    #define BLA 100;
    

    wenn ja - da darf kein semikolon hin 😉



  • argh, verdammt *kopfgegenwandhau* 😃 😃
    naja, es ist ja auch schon spät^^



  • Hallo

    Nicht nur deswegen sollte man für Konstanten in C++ nicht Makros (define) benutzen, sondern eben Statische Konstante Variablen.

    static const int BLA = 100;
    

    Hier ist das Semikolon nötig, und jede Verwendung der Konstanten erfolgt typsicher.

    bis bald
    akari


Anmelden zum Antworten