В чем разница между "pi" и "M PI" в objc

включая некоторую математику в мой код, я наткнулся на константу "PI". По крайней мере, в моей версии Xcode 4.6 я мог бы использовать любой из них. Но в чем разница между pi и M_PI? Документация по этому вопросу немного плотная.

2 ответов


pi определяется в "CarbonCore.фреймворк " заголовки как

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

но помечен как "устаревший". Я предполагаю, что это реликт из старых углеродных структур.

M_PI определяется как макрос

#define M_PI   3.14159265358979323846264338327950288

на math.h и часть стандарта POSIX.

значения идентичны, но вы должны использовать M_PI из соображений портируемости.

Свифт посмотреть как получить mathemical ПИ постоянная в Swift.)


M_PI достаточно близко, чтобы приблизиться к окружности галактики (и, вероятно, всей Вселенной) в пределах нескольких миль, поэтому я бы не потерял сон над ним.