ganz komischer "conflicting types for xyz" fehler.



  • Hallo zusammen!

    Ich habe ein Problem mit einer/mehreren Funktionen.

    Mein Programm besteht aus 5 Funktionen.
    Die 1. beiden funktionieren wunderbar. Wenn ich jetzt die 3. dazu nehme dann kommt immer ein fehler. Hier ein auszug für eine funktion samt ihren aufruf:

    //AUFRUF:
    
              case 3:
                  printf("Bitte geben sie die Kontonummer von dem Konto an, auf welches sie einzahlen möchten:");
                  scanf("%i",&tempCountKonten);
                  printf("Wieviel möchten sie auf das Konto mit der Nummer: %i einzahlen?:",tempCountKonten);          
                  scanf("%f",&einzahlBetrag);
                  neuerKontostand=einzahlung(kontostand,tempCountKonten,einzahlBetrag);
                  printf("Der neue Kontostand beträgt: %f",neuerKontostand);
    
                  break;
    
    //FUNKTION:
    
    double einzahlung(double kontostand[], int tempCountKonten, double einzahlBetrag){
           double x=0;
           kontostand[tempCountKonten]=kontostand[tempCountKonten]+einzahlBetrag;
           x=kontostand[tempCountKonten];
           return x;
           }
    

    der Fehler der immer auftritt heisst wie folgt:

    conflicting types for 'einzahlung'
    previous implicit declaration of 'einzahlung' was here

    alle variablen sind richtig deklariert es ist total komisch.

    mfg
    MongoDongo



  • Fehler behoben!!!

    Habe die ganzen FUnktionen über die MAIN geschoben dann war das problem weg

    Kann mir jemand sagen warum 2 FUnktionen unter der main funktionieren und sobald man eine neue z.b. 3 die dritte dazu nimmt dann ein fehler kommt?
    Habe nun alle 5 funktionen üner main und es gehzt!

    mfg
    MongoDongo



  • Such mal nach Funktionsdeklaration und Funktionsdefinition.



  • MongoDongo schrieb:

    Fehler behoben!!!

    👍 👍 👍



  • MongoDongo schrieb:

    Kann mir jemand sagen warum 2 FUnktionen unter der main funktionieren und sobald man eine neue z.b. 3 die dritte dazu nimmt dann ein fehler kommt?

    Wenn du eine Funktion verwendest, bevor sie deklariert wurde, bekommt sie eine implizite Deklaration als 'int func();' (Rückgabetyp int, beliebige Parameter). Wenn du dann etwas anderes als int in der Definition angibst (in deinem Fall ein double), beschwert sich der Compiler zu recht.


Anmelden zum Antworten