数学関係の標準ライブラリ(math.h)を使用する際の注意


目次に戻る


私はこのせいで丸一日悩みました。
 
 
注意点1    #include <math.h>を忘れるな
古いANSIに準拠のコンパイラでは関数のプロトタイプ宣言は必須ではありません。しかしこのようなコンパイラの中の一部に、プロトタイプ宣言が無い場合作成したプログラムの挙動がおかしくなる物があります。
 
そういうわけで、#include <math.h>を記述することを忘れないように。
 
ちなみに最近のCコンパイラやC++コンパイラはプロトタイプ宣言が無いとエラーになるためヘッダファイルのincludeを忘れるとコンパイル時にエラーがでるので、このようなへまをする事は殆どありません。
注意点2 リンク時(コンパイル時)に -lm を入れること
これは常識ですが、-lmを入れないと数学ライブラリをリンクしないためリンク時にエラーが発生します。まぁ、大した注意書きではないです。
 
やっかいなのは、注意点1。正常にコンパイル、リンクが通りアプリが作成されたのにも関わらず挙動不審。メモリ操作のミスか?と色々調べたあげくがヘッダファイルを忘れただけ。涙でてきちゃうよ。
 
教訓
 
使用するコンパイラはできるだけ新しい物を!

以上。


目次に戻る