[gelöst][gcc-Problem?]src/Option.c:117: error: expected ‘)’ before ‘;’ token



  • Hallo c-community,

    ich habe ein komisches Verhalten beobachtet. Wenn ich mit mein Programm mit dem gcc 4.4.3 compiliere, dann erhalte ich die oben genannte Fehlermeldung, obwohl ich kein ")" vergessen habe (meiner Meinung nach).

    Bei folgender Funktion tritt der Fehler auf:

    int Option_Complete(Option* This)
    {
    	/*if ((This->ibLengthSet == True) && (This->ibNameSet == True) && (This->ibNachnameSet == True) && (This->ibFileNameSet == True) && (This->ibAdresseSet == True)) return True;
    	else return False;*/
    	if (This->ibLengthSet == True) return True;
    	else return False;
    }
    

    Der auskommentierte Text ist eigentlich das Ziel. Aber eine einfache if-Abfrage scheitert mit dem gleichen Fehler.

    Option ist ein struct mit entsprechenden Variablen und gibt keinen Fehler. True und False habe ich mit 0 und 1 definiert.

    Leider kann ich mir den Fehler nicht erklären, da ich in der einfachen Version nur 2 Klammern verwende (eine auf und eine zu) und trtzdem beschwert sich GCC, dass eine Klammer fehlt.

    Hoffe jemand sieht meinen Fehler.

    MfG
    mirrowwinger



  • Der Fehler kann auch ein Folgefehler, ein Fehler an anderer Stelle irgendwo im Code, eventuell in einer anderen Datei, sein.
    Ob das so ist kannst du feststellen, indem du komplette Codeblöcke auskommentierst.

    /*
    int Option_Complete(Option* This)
    {
    // true == 1
    return This->ibLengthSet && This->ibNameSet && This->ibNachnameSet && This->ibFileNameSet && This->ibAdresseSet;
    }
    */
    


  • Also im Prinzip ist das Projekt compilierbar, wenn ich den kompletten Inhalt der angegebenen Funktion auskommentiere.

    Folgender Ersatz funktioniert ebenso:

    int Option_Complete(struct Option* This)
    {
    	printf("Hallo\n");
    	return 0;
    }
    

    Wenn ich aber diese Funktion (es gibt mehrere) um eine IF-Anweisung erweitere:

    int Option_Complete(struct Option* This)
    {
    	if(This->ibLengthSet == True) return -1;	
    	printf("Hallo\n");
    	return 0;
    }
    

    Tritt der Fehler wieder auf.

    [Edit1]
    Also Fehler habe ich glaube ich gefunden. Ich habe folgende Constant.h Datei im Projekt eingebunden:

    #ifndef CONSTANTHEADER
    #define CONSTANTHEADER
    
    #define False 0;    //<-- Hier scheint der Fehler (das Simikolon) gelegen zu haben!!
    #define True 1;     //<-- Hier scheint der Fehler (das Simikolon) gelegen zu haben!!
    
    #define PROGRAMM "ProgrammName "
    #define OPTION1 "-b "
    #define OPTION2 "-e "
    #define OPTION3 "-p "
    
    #define CONST1 7
    #define CONST2 5
    #define CONST3 0
    
    #endif
    

    [/Edit1]


Log in to reply