web-dev-qa-db-ja.com

objcの「pi」と「M_PI」の違いは何ですか

コードにいくつかの数学を含めると、定数「PI」を偶然見つけました。少なくとも私のXcodeバージョン4.6では、どちらかを使用できました。しかし、piM_PIの違いは何ですか?ドキュメントはそのトピックについて少しタイトです。

12
JFS

piは "CarbonCore.framework"ヘッダーで次のように定義されています

extern const double_t pi  __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);

「非推奨」とマークされています。古いCarbonフレームワークからの遺物だと思います。

M_PIはマクロとして定義されています

#define M_PI   3.14159265358979323846264338327950288

in math.h およびPOSIX標準の一部。

値は同じですが、移植性の理由からM_PIを使用する必要があります。

(そしてSwiftの場合、を参照 Swiftで数学的なPI定数を取得する方法

27
Martin R

M_PIは、数マイル以内で銀河(およびおそらく宇宙全体)の周囲に近づくのに十分近いので、私はその上で睡眠を失うことはありません。

1
Laserbeak