Durante la lettura di varie fonti C e C++, ho rilevato due macro __APPLE__
e __OSX__
. Ho trovato un sacco di uso di __OSX__
in vari codici, in particolare quelli originati dai sistemi *BSD
.Quale macro per incapsulare il codice specifico di Mac OS X in C/C++
Tuttavia, a volte trovo che il test __OSX__
non sia sufficiente e devo completare i test con la macro __APPLE__
.
I Porting Command Line Unix Tools to Mac OS X guide specifica __APPLE__
e inoltre __APPLE_CC__
ma fa non menzione __OSX__
.
La guida Porting from GCC dice:
- Usa
#ifdef __GNUC__
per avvolgere qualsiasi codice specifico GCC.- Utilizzare
#ifdef __APPLE_CC__
per avvolgere qualsiasi codice specifico per Mac OS X.
Anche in questo caso, nessuna menzione circa __OSX__
macro.
Quale macro è predefinita sulla piattaforma Mac OS X e sull'ambiente di sviluppo XCode da utilizzare per distinguere il codice specifico di OSX nei programmi C/C++?
Dove è definita la macro __OSX__
? È la macro specifica *BSD
?
Qt utilizza anche una definizione diversa: 'Q_OS_OSX' – math