Quel pré-processeur C conditionnel dois-je utiliser pour du code spécifique à OS X?

Quel pré-processeur C conditionnel dois-je utiliser pour du code spécifique à OS X? Je dois inclure une bibliothèque spécifique si je comstack pour OS X ou un en-tête différent si je comstack pour Linux.

Je sais qu’il existe __APPLE__ mais je ne sais pas s’il s’agit d’une condition actuelle pour OS X 10.x.

Cette liste de macros de système d’exploitation indique la présence de __APPLE__ et __MACH__ indiquent OSX.

Également confirmé à la ligne 18 d’une partie de la source de fdisk .

__APPLE__ vous dira que vous comstackz sur une plate-forme Apple. À moins que vous n’ayez besoin de supporter les versions de MacOS antérieures à OS X, cela devrait suffire. Sinon, vous pouvez utiliser __APPLE__ et __MACH__ pour vous assurer que vous comstackz sous OS X.

Si je me souviens bien, c’est __APPLE__ 🙂

Cet exemple de code peut vous aider –

 if defined(__APPLE__) #include "TargetConditionals.h" if (!defined(TARGET_OS_IPHONE) && !defined(TARGET_IPHONE_SIMULATOR)) { //write your OSX specific code here } 

style ancien cru:

 #ifdef WIN32 // windows. #elif __APPLE__ // osx and ios. #endif 

Cette page contient une liste de toutes les macros prédéfinies du système d’exploitation.

Pour mac OSX, __APPLE__ __MACH__ nécessaire de définir __APPLE__ && __MACH__ .