Secondo il mio modesto parere, le opzioni del precompilatore non dovrebbero essere usate nel test di variabili.
La cosa più logica, a mio avviso (non volendo ricorrere alle classi del c++) sarebbe fare una cosa di questo tipo:
Le due funzioni chiamate, client() e server(), sarebbero due funzioni paragonabili alle "main" dei rispettivi moduli di codice (cioè due funzioni madri da cui richiamare tutte le altre funzioni utili).codice:extern "C" int client (...); extern "C" int server (...); if (...) client (); /* Funzione contenuta in client.c e dichiarata come extern nel modulo corrente */ else server(); /* Funzione contenuta in server.c e dichiarata come extern nel modulo corrente */
In questo modo accederesti ai due moduli di codice in modo ragionato e strutturato. Scrivere un'inclusione di un intero modulo di codice è come copiarlo e incollarlo pedissequamente all'interno del codice chiamante, tutto compreso.