2013-05-04 6 views
12

Mam trochę kodu C++ i chcę wykonać akcję, jeśli zdefiniowano makra __APPLE__ lub __linux.Jak sprawdzić, czy jedno z wielu makr jest zdefiniowane w pojedynczym pliku #ifdef?

Gdybym zrobił to jako normalny if warunkowym, byłoby to łatwe przy użyciu ||:

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

Ale z tego, co wiem, nie ma || operator #ifdef wypowiedzi. Jak sprawdzić, czy __APPLE__ lub __linux jest zdefiniowany za pomocą pojedynczej instrukcji #ifdef?

+0

Cóż, jeśli myślisz "dostępne w systemie OS X/iOS i Linux", czy nie chcesz sprawdzić dostępności POSIX? –

+0

@ H2CO3 dobry pomysł. – beakr

Odpowiedz

22

Nie można w pojedynczej #ifdef zrobić zamiast tego pojedynczego #if?

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

działa to również, jeśli wolisz

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

W moim C++ istnieje.

#if defined(__APPLE__) || defined(__linux) 
    // ... 
#endif 
Powiązane problemy