syntax error before '=' token



  • hallo ich bin noch relativer noob und hab erst mit c angefangen - ich scheiter leiter schon am einfachsten - hoff ihr könnt mir helfen!

    #define SEC_P_HOUR = 3600
        #define SEC_P_MIN = 60
        int sec_p = 5000; //Später per Parameterübergabe
        int sec;
        int min;
        int hour;
        hour = sec_p / SEC_P_HOUR;
        min = (sec_p / SEC_P_MIN) - (hour * SEC_P_MIN);
        sec = sec_p - (hour * SEC_P_HOUR) - (min * SEC_P_MIN);
    

    das ist mein code und der sagt mir nur syntax error before '=' token ab da wo ich hour deklarieren will! - ich seh und find hier selber kein fehler - hoff ihr könnt mir helfen - an der integer definition kanns doch nicht liegen oder? da ich nachgelesen hab das man gebrochenrationalen typen auch int zuweisen kann und dann einfach ab komma abgeschnitten wird?

    danke für hilfe 😕

    mfg



  • Deine symbolischen Konstanten sind nicht ganz korrekt. Sie stehen ja nur für einen Textersatz den der Präprozessor durchführt. Ihnen wird kein Wert (per =-Operator) zugewiesen.

    Die Syntax lautet:

    #define NAME ALTERNATIVTEXT
    

    Also:

    #define SEC_P_HOUR 3600
    #define SEC_P_MIN 60
    

    Caipi



  • danke für die schnelle antwort - probl gelöst...bin halt noch noob



  • da muss ich euch gleich nochmal nerven weil ich wieder nen fehler hab den ich net hinbekomm:

    #include <stdio.h>
    
        int sec_p;
        int check; /*Variablen für Eingabeüberprüfung*/
        do{
        check = scanf("%d",&sec_p); 
        ...code...code.code
        }
        while((check !=1) && (sec_p < 0));
        printf("%d\n",sec_p); /*Gibt mir bei einem Wert auserhalb des Wertebereiches -1 aus --- bis dahin is noch klar*/
        printf("Check: %d\n", check); /*Hier gibt der mir jetz aber eins aus aber warum??? eine zeile vorher hat er mir doch auch noch -1 
    ausgegeben und damit müsste der in der do-while schleife hängen bleiben!!!!*/
    

    brauch da dringend hilfe...



  • DeAX schrieb:

    Hier gibt der mir jetz aber eins aus aber warum??? eine zeile vorher hat er mir doch auch noch -1
    ausgegeben und damit müsste der in der do-while schleife hängen bleiben!!!!

    Nö, denn:

    do {
      //something
    } while((check !=1) && (sec_p < 0));
    

    Annahme: check = 1, sec_p = -1;

    (check!=1) == false;
    (sec_p<0) == true;

    false && true == false --> Schleifenabbruch!

    Viel Erfolg noch,

    Swordfish


Anmelden zum Antworten