Includendo alcuni calcoli nel mio codice, ho inciampato sulla costante "PI". Almeno nella mia versione Xcode 4.6 potrei usare uno dei due. Ma qual è la differenza tra pi
e M_PI
? La documentazione è un po 'stretta su questo argomento.Qual è la differenza tra "pi" e "M_PI" nell'oggetto
risposta
pi
è definito nelle intestazioni "CarbonCore.framework", come
extern const double_t pi __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
ma contrassegnati come "deprecato". Presumo che si tratti di un relitto di vecchie strutture in carbonio.
M_PI
è definito come macro
#define M_PI 3.14159265358979323846264338327950288
in math.h
e parte dello standard POSIX.
I valori sono identici, ma è necessario utilizzare M_PI
per motivi di trasferibilità.
(E per Swift, vedere How to get mathemical PI constant in Swift.)
Grazie per la risposta e WOW! È bello sapere di non usare 'pi' (ho sempre fatto così lontano). Posso includere direttamente 'M_PI' nel mio codice o devo' #importare ... 'anche una classe speciale. – JFS
Se si importano già le intestazioni Foundation o CoreFoundation, è sufficiente utilizzarlo, poiché queste includono '
Grazie e buona fortuna! – JFS
M_PI è abbastanza vicino per approssimare la circonferenza della galassia (e probabilmente l'intero Universo) a poche miglia, in modo da non perdere il sonno esso.
'pi' non è una costante standard nelle intestazioni Cocoa che ho incluso, né è' PI'. 'M_PI' è la definizione standard di math.h e dovrebbe essere adatta per la maggior parte degli scopi. –
@BenZotto: 'M_PI' è un posix-ism, non parte dello standard C. –
@StephenCanon: giusto. Intendevo "standard" come in "quello che tutti usano". :) –