cmath.habsolute-value

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


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?


Solution

  • 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.