web-dev-qa-db-ja.com

math.hをインクルードした後のabs '暗黙の宣言...'エラー

abs()関数を使用し、コードの先頭に#include <math.h>を追加しました。しかし、私はこのエラーを受け取り続けます:

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

LLVMコンパイラを使用しています。

math.hを含めたのに、なぜこのエラーが発生するのですか?

12
wakwakwak99

私はドキュメントから直接引用します: "abs、labs、およびllabsのプロトタイプはstdlib.hにあります"

経験則として、浮動小数点数を操作する数学関数はmath.hにあり、整数を操作する関数はstdlib.hにあります。

さらに情報が必要な場合は、C数学関数の かなり良いWikipediaの記事 を参照してください。

24
tux3