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する必要がある。

再検索