http://www.atinfinity.info/blog/archives/14
引用
学生の時からVC++でM_PIを使おうとしたら「M_PIが定義されてない」
ってエラーが出るんだろう? と思ってはいたものの,スルーして
#define M_PI 3.1415926535897932384626433832795
とか定義してだましだましやってたんですが,
(特にM_PIについて調べたわけじゃないけど)たまたま読んだblogにて
#define _USE_MATH_DEFINES
#include <math.h>
と定義してやると,うまくいくらしいということで
やってみたらうまくいった.でも,理由がわからないと
なんだか気持ち悪いので,math.hを読んでみると
#if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
#endif
の間に
#define M_PI 3.14159265358979323846
って記述してあるので,M_PIを使うようなプログラムでは,
#include <math.h>
でmath.hをインクルードする前に
#define _USE_MATH_DEFINES
としなきゃ、そりゃあ「M_PIが定義されてない」ってエラーも出るよなと納得.
長年つっかえてたものが取れてちょっとスッキリ.
引用終わり
引用
学生の時からVC++でM_PIを使おうとしたら「M_PIが定義されてない」
ってエラーが出るんだろう? と思ってはいたものの,スルーして
#define M_PI 3.1415926535897932384626433832795
とか定義してだましだましやってたんですが,
(特にM_PIについて調べたわけじゃないけど)たまたま読んだblogにて
#define _USE_MATH_DEFINES
#include <math.h>
と定義してやると,うまくいくらしいということで
やってみたらうまくいった.でも,理由がわからないと
なんだか気持ち悪いので,math.hを読んでみると
#if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
#endif
の間に
#define M_PI 3.14159265358979323846
って記述してあるので,M_PIを使うようなプログラムでは,
#include <math.h>
でmath.hをインクルードする前に
#define _USE_MATH_DEFINES
としなきゃ、そりゃあ「M_PIが定義されてない」ってエラーも出るよなと納得.
長年つっかえてたものが取れてちょっとスッキリ.
引用終わり
PR
トラックバック
トラックバックURL: