Zu einer anderen Funkion springen



  • Hallo

    Ich habe ein Problem. Und zwar schaffe ich es nicht, in einer "If-Bedingung" zu einer anderen Funkion zu springen.

    In der Funktion

    int main()
    

    habe ich folgende If-Bedingung geschrieben:

    if(eingabe == "1")
    {
    berechnung(); //hier
    }
    else
    {
    }
    

    Und zwar habe ich nach der main() Funktion, eine Funktion gemacht, die etwas berechnen soll. Nur wie schaffe ich es, zu dieser zu kommen? Der Kompiler sagt mir immer, dass "berechnung" ein nicht deklarierter Bereich und so wäre.
    Ich denke, ich weis an was es liegt und zwar, dass der Kompiler zum Zeitpunkt der Umsetztung von der If-Bedingung noch gar nicht weis, was mit berechnung() gemeint ist. Aber wie bringe ich ihm bei, zuerst die Funktion int main() Auszuführen und dann bei einer Eingabe zu int berechnung() zu springen?
    Wenn ich int berechnung() vor int main() setzte, führt er ja nicht zuerst int main() aus.



  • Schreib doch die Definition der Funktion einfach vor die Main-Funktion 😉



  • ...oder benutz prototypen 🙂



  • Wenn ich int berechnung() vor int main() setzte, führt er ja nicht zuerst int main() aus.

    Doch. die main-funktion wird in jedem c/c++ programm zuerst ausgeführt. sie ist der einstiegspunkt für jedes programm.



  • Ja und wie muss ich eine Funktion definieren. Mit strings (string a; ) geht das ja leicht aber ich habe null Ahnung wie das bei Funktionen geht.

    [ Dieser Beitrag wurde am 02.09.2002 um 22:06 Uhr von Holy editiert. ]



  • Im Prinzip genauso. Entweder du machst es mit nem Prototypen (Deklaration der Funktion VOR der Main)

    void berechnung(void);
    
    int main()
    {
       berechnung();
       return 0;
    }
    
    void berechnung()
    {
       // berechne was ...
    }
    

    Oder du setzt die Definition (ist dann auch ne Deklaration) VOR die main:

    void berechnung()
    {
       // berechne was ...
    }
    
    int main()
    {
       berechnung();
       return 0;
    }
    


  • Frage ist jetzt schon beantwortet - wäre aber grundsätzlich was fürs Standard-Forum gewesen. In Zukunft bitte daran denken :).

    MfG SideWinder


Log in to reply