abs ‘implizite Deklaration…’ Fehler nach dem Einbinden von math.h

Lesezeit: 1 Minute

Benutzer-Avatar
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))

    – chux – Wiedereinsetzung von Monica

    11. April 2015 um 15:55 Uhr

Ich zitiere direkt aus den Dokumenten: “Prototypen für abs, labs und llabs sind in stdlib.h”

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.

Da ist ein ziemlich guter Wikipedia-Artikel zu mathematischen C-Funktionen, wenn Sie weitere Informationen benötigen.

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>

1176890cookie-checkabs ‘implizite Deklaration…’ Fehler nach dem Einbinden von math.h

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy