abs ‘implizite Deklaration…’ Fehler nach dem Einbinden von math.h
Lesezeit: 1 Minute
wakwakwak99
Ich habe die verwendet abs() Funktion und ich hinzugefügt #include <math.h> am Anfang des Codes. Aber ich bekomme immer diesen Fehler:
hello.c:20:11: warning: implicit declaration of function 'abs' is invalid in C99
[-Wimplicit-function-declaration]
int a = abs(arrOfHour[i] - hour) * 60 + minute;
^
Ich verwende den LLVM-Compiler.
Warum tritt dieser Fehler auf, obwohl ich eingeschlossen habe math.h?
Können Sie den Code posten, insbesondere den Teil, den Sie aufrufen abs?
– holgac
11. April 2015 um 12:31 Uhr
@holgac, das wird nicht benötigt. Der Teil, wo das OP anruft abs steht in der Warnmeldung.
– Spikatrix
11. April 2015 um 12:33 Uhr
@CoolGuy ja, ich habe vergessen, dass nicht deklarierte Funktionen implizit deklariert werden, sorry. Wie auch immer, für die Zukunft können Sie überprüfen, wo eine Funktion mit deklariert ist Hilfeseiten, linux.die.net/man/3/abs
– holgac
11. April 2015 um 12:36 Uhr
Übrigens: Verdächtige Codes int a = abs(arrOfHour[i] - hour) * 60 + minute; und seine vorherige Berechnung von minute wird nicht wie gewünscht funktionieren. Vielleicht möchten Sie so etwas wie a = abs(arrOfHour[i]*60 + arrOfMin[i] - (hour*60 + min))
Als Faustregel gilt, dass sich die mathematischen Funktionen, die mit Gleitkommazahlen arbeiten, in math.h befinden, und diejenigen, die mit ganzen Zahlen arbeiten, in stdlib.h.
Die Funktionsheader fehlen, aber da die abs-Funktion die Bibliothek benötigt math.h und auch stdlib.h, letzteres muss fehlen. Darin enthalten ist auch der Aufruf zur Bibliothek stdlib.h
#include <stdlib.h>
11768900cookie-checkabs ‘implizite Deklaration…’ Fehler nach dem Einbinden von math.hyes
Können Sie den Code posten, insbesondere den Teil, den Sie aufrufen
abs
?– holgac
11. April 2015 um 12:31 Uhr
@holgac, das wird nicht benötigt. Der Teil, wo das OP anruft
abs
steht in der Warnmeldung.– Spikatrix
11. April 2015 um 12:33 Uhr
@CoolGuy ja, ich habe vergessen, dass nicht deklarierte Funktionen implizit deklariert werden, sorry. Wie auch immer, für die Zukunft können Sie überprüfen, wo eine Funktion mit deklariert ist Hilfeseiten, linux.die.net/man/3/abs
– holgac
11. April 2015 um 12:36 Uhr
Übrigens: Verdächtige Codes
int a = abs(arrOfHour[i] - hour) * 60 + minute;
und seine vorherige Berechnung vonminute
wird nicht wie gewünscht funktionieren. Vielleicht möchten Sie so etwas wiea = abs(arrOfHour[i]*60 + arrOfMin[i] - (hour*60 + min))
– chux – Wiedereinsetzung von Monica
11. April 2015 um 15:55 Uhr