Kompilierfehler



  • Hi zusammen!

    Ich bekomme beim kompilieren der "main.c" folgenden Fehler:

    [Warning] incompatible implicit declaration of built-in function 'scanf' [enabled by default]
    

    Mit Hilfe von Mr. Google gibt es Hinweise darauf, dass die Datei "stdio.h" nicht eingebunden sei.

    Mein Code:

    main.c

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <time.h>
    #include <math.h>
    
    #include "HeaderA.h"
    
    int main() {
    
        return 0;
    
    }
    

    HeaderA.h

    int FuncInputFileNameCArray[100];
    
    int FuncInputFileName();
    

    HeaderA.c

    extern FuncInputFileNameCArray;
    int FuncInputFileName() {
        scanf("%s",FuncInputFileNameCArray);
    }
    

    (DevC++ (Orwell Update 5.6.3), Linker Befehl: -static-libgcc FuncInputFileName.c

    Könt ihr mir helfen?

    Danke



  • Du musst in HeaderA.c den Header, der scanf (explizit) deklariert inkludieren. Welcher Header das ist, hast du ja bereits herausgefunden.



  • Und die Definition von FuncInputFileNameCArray gehört in HeaderA.c
    Die Deklaration (mit extern) gehört in HeaderA.h

    Allerdings solltest du auf globale Variablen soweit wie möglich verzichten.
    Und hier besteht kein Grund diese zu benutzen.



  • EinGast schrieb:

    Du musst in HeaderA.c den Header, der scanf (explizit) deklariert inkludieren. Welcher Header das ist, hast du ja bereits herausgefunden.

    Danke.

    Edit: Danke DirkB für diesen Hinweis


Anmelden zum Antworten