Problem mit C Programm



  • Ich habe eine Funktion geschrieben will darauf zugreifen und dann kommt immer ne Fehlermeldung:

    main.c:37: error: conflicting types for 'stellung'
    main.c:12: error: previous implicit declaration of 'stellung' was here
    make.exe: *** [main.o] Error 1

    Und dann wird die gescheifte Klammer ("{") Rot angezeigt
    Hoffe jemand kann mir weiter helfen



  • Geile Meldung 👍
    Noch geiler wäre aber der dazugehörige Code gewesen...



  • warum wird bei solchen fragen nicht einfach die klappe gehalten bis der fragesteller mal von alleine auf die idee kommt, nach einer FAQ zu suchen?

    nein, statt einfach nur auf die faq hinzuweisen, wird gleich draus rezitiert.



  • LoL ich habe in der FAQ nix gefunden
    woran liegst den?
    ich will eine ganz normale funktion aufrufen die wie folgt aussieht:

    void stellung()
    { /*Die Klammer wird makiert*/
    FILE *DBB;     
    DBB = fopen ("C:\\start.bat","wt");
    if (DBB)
    {
    fprintf (DBB,"Start java.exe");
    }
    fclose (DBB);
    }
    

    Und da wird immer die Klammer Rot makiert und die Folgende Fehler Meldung:
    main.c:37: error: conflicting types for 'stellung'
    main.c:12: error: previous implicit declaration of 'stellung' was here
    make.exe: *** [main.o] Error 1
    Und so rufe ich die Funktion auf:

    stellung();
    

    Also kann mir jetzt vll jemand sagen warum es nicht geht?



  • Du musst entweder einen Prototyp der Funktion erstellen, oder die Funktion über main definieren:
    Variante A:

    #include <stdio.h>
    
    void stellung();
    
    int main() {
      stellung();
      return 0;
    }
    
    void stellung()
    { 
      FILE *DBB;    
      DBB = fopen ("C:\\start.bat","wt");
      if (DBB)
      {
        fprintf (DBB,"Start java.exe");
      }
      fclose (DBB);
    }
    

    Variante B:

    #include <stdio.h>
    
    void stellung()
    { 
      FILE *DBB;    
      DBB = fopen ("C:\\start.bat","wt");
      if (DBB)
      {
        fprintf (DBB,"Start java.exe");
      }
      fclose (DBB);
    }
    
    int main() {
      stellung();
      return 0;
    }
    

    MfG

    GPC



  • THX GPC habe Variante B aus probiert und es hat geklappt.
    Danke
    🙂



  • Variante A ist im Übrigen die bessere von beiden...



  • Ich weiß habe die grade eben ma ausprobiert
    nochma Thx


Anmelden zum Antworten