abs 'implicit declaration…' error after in

2019-04-05 04:46发布

问题:

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?

回答1:

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.