Warum diese "implizite Deklaration der Funktion 'X'"? [Duplikat]

Diese Frage hat hier bereits eine Antwort:

Warnung: implizite Funktionserklärung 6 Antworten

Ich habe ein einfaches Programm geschrieben, um die Summe, den Durchschnitt, die größte und die kleinste Anzahl von 3 Zahlen zu ermitteln. Der Benutzer kann drei (ganzzahlige) Zahlen eingeben und die Summe, den Durchschnitt, das Maximum und das Minimum zurückgeben. Es hat keine Fehler, sondern eine Warnung. Hier ist mein Quellcode:

Haupt c:

#include <stdio.h>

int main()
{
    int num1, num2, num3, sum, max, min, avg;

    printf("Enter Three \"Integer\" Numbers:");

    scanf("%i%i%i", &num1, &num2, &num3);

    sum = summation(&num1, &num2, &num3);
    avg = average(&sum);
    max = max_val(&num1, &num2, &num3);
    min = min_val(&num1, &num2, &num3);

    printf("Sum: %i Avg: %i MAX: %i MIN: %i", sum, avg, max, min);

    return 0;
}

int summation(int *n1, int *n2, int *n3)
{
    int s;
    s = *n1 + *n2 + *n3;

    return s;
}

int average(int *s)
{
    int a;
    a = *s / 3;

    return a;
}

int max_val(int *n1, int *n2, int *n3)
{
    int MAX;

    if (*n1 > *n2) MAX = *n1;
    else if (*n2 > *n3) MAX = *n2;
    else MAX = *n3;

    return MAX;
}

int min_val(int *n1, int *n2, int *n3)
{
    int MIN;

    if (*n1 < *n2) MIN = *n1;
    else if (*n2 < *n3) MIN = *n2;
    else MIN = *n3;

    return MIN;
}

Ich denke, es ist nicht nötig, eine Header-Datei zu erstellen, da alle Funktionen vom Typ "int" sind.

Wenn ich das kompiliere

gcc main.c -o test

Es sagt

main.c: In function 'main':
main.c:34:5: warning: implicit declaration of function 'summation' [-Wimplicit-function-declaration]

Warum diese Warnung? Ich kann in dieser Erklärung nichts Falsches finden. Was ist das?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage