Warum diese "implizite Deklaration der Funktion 'X'"? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Warnung: implizite Funktionserklärung 6 AntwortenIch 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?