Ответы:
#if defined LINUX || defined ANDROID
//...
#endif
или-
#if defined(LINUX) || defined(ANDROID)
//...
#endif
Оба выше одинаковы, который вы используете, просто зависит от ваших предпочтений.
PS : #ifdef
это просто краткая форма #if defined
, однако не поддерживает сложные условия.
Дальше-
#if defined LINUX && defined ANDROID
#if defined LINUX ^ defined ANDROID
|
«или» в своих условных выражениях C, вы делаете это неправильно.