abs 'implicit declaration...' error after including math.h

wakwakwak99 picture wakwakwak99 · Apr 11, 2015 · Viewed 24.3k times · Source

I used the abs() function and I added #include <math.h> at the top of code. But I keep getting this error:

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;
              ^

I'm using LLVM compiler.

Why does this error occurs even though I have included math.h?

Answer

tux3 picture tux3 · Apr 11, 2015

I'm going to quote straight from the docs : "Prototypes for abs, labs and llabs are in stdlib.h"

As a rule of thumb the mathematical functions that operate on floating point numbers are in math.h, and the ones that operate on integers are in stdlib.h.

There's a pretty good Wikipedia article on C mathematical functions if you need more information.