Ho la necessità di individuare il sistema operativo utilizzato dall'utente.
Ho inserito questo codice:
Ma che parametro devo associare in fase di compilazione per non ricevere errori?codice:#ifdef win32 #define msg "Windows" #endif ....
Grazie
Ho la necessità di individuare il sistema operativo utilizzato dall'utente.
Ho inserito questo codice:
Ma che parametro devo associare in fase di compilazione per non ricevere errori?codice:#ifdef win32 #define msg "Windows" #endif ....
Grazie
Con il C puoi sapere il sistema operativo per cui è compilato il programma, non quello su cui viene eseguito; per fare questo ti puoi basare sulle macro definite dal compilatore, come in effetti fai nel tuo codice.
Che errori ricevi?Ma che parametro devo associare in fase di compilazione per non ricevere errori?
Amaro C++, il gusto pieno dell'undefined behavior.
In teoria il preprocessore dovrebbe definire una costante del sistema operativo utilizzato.
Esempio stupido:
codice:#include <stdio.h> #define N 10 #ifdef T #define x 0 #else #define x 1 #endif #ifdef win32 #define msg "Windows" #endif int main() { printf("x = %d\n\n", x); /* la costante x la trova e non dà errori. */ printf("msg: %s\n\n", msg); /* la costante msg non la trova e mi dà errori */ return 0; }
Sì ... ma non e' detto che sia win32 ... ad esempio, per VC++ e'
WIN32
(in maiuscolo)
Quale compilatore stai usando?
Anche in questo caso e'
WIN32
... prova