2013-05-04 10 views
12

Ho un codice C++ e voglio eseguire un'azione se sono state definite le macro __APPLE__ o __linux.Come posso verificare se una delle macro multiple è definita in un singolo #ifdef?

Se l'ho fatto come un normale if condizionale, sarebbe facile utilizzando ||:

if (something || something) { .. code .. } 

Ma, come di quello che so non c'è || dell'operatore per #ifdef dichiarazioni. Come posso verificare se __APPLE__ o __linux viene definito utilizzando una singola istruzione #ifdef?

+0

Bene, se si pensa "disponibile su OS X/iOS e Linux", non si desidera controllare invece la disponibilità di POSIX? –

+0

@ H2CO3 buona idea. – beakr

risposta

22

Non è possibile in un solo #ifdef fare invece un singolo #if?

#if defined(__APPLE__) || defined(__linux) 

funziona questo anche se si preferisce

#if defined __APPLE__ || defined __linux 
3
#if defined(__APPLE__) || defined(__linux) 
2
#if defined __APPLE__ || defined __linux 
+0

Non dimenticare il #endif. – MrPickle5

2

Nel mio C++ non c'è.

#if defined(__APPLE__) || defined(__linux) 
    // ... 
#endif 
Problemi correlati