M_PI
読み:エム-アンダースコアアンダースコア-パイ
外語:M_PI
C/C++で、円周率(π)を表わすマクロ。ただし、C/C++の標準仕様ではない。
定義
GCCのmath.hには、次のように定義されていることが多い。
#if defined __USE_BSD || defined __USE_XOPEN
# define M_PI 3.14159265358979323846 /* pi */
#endif
さらに、高精度な以下が定義されていることもある。
#ifdef __USE_GNU
# define M_PIl 3.1415926535897932384626433832795029L /* pi */
#endif
M_PIでも一般的なdoubleの有効桁数以上の桁数がある。
特徴
非標準
現時点において、このマクロ定数は標準化されていない。従って、このマクロ定数を用いると移植性がなくなる。
対応する実装では、Cならmath.hを、C++ならcmathをincludeすると使用できる。
Visual C++
Visual C++では、非標準のこれらのマクロを標準で#defineしない。
あらかじめ _USE_MATH_DEFINESを#defineしてから、math.hまたはcmathをincludeする必要がある。
再検索