|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
[C] direttive per il precompilatore
Un saluto a tutti!
dovrei fare un programmino che se siamo in ambiente Windows includa una libreria e se siamo in ambiente linux un'altra; si può fare? avevo in mente di fare una cosa di questo tipo: Codice:
#ifndef SISTEMA #define SISTEMA 1 #endif // Scelgo la funzione di sistema per pulire lo schermo #if SISTEMA==0 #include <mylib.h> #elif SISTEMA==1 #include <conio.h> #endif grazie! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
con gcc l'opzione -DFLAG=1 definisce FLAG = 1
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Innanzitutto in questi casi si parla di preprocessore, non precompilatore.
Fare quello che dici è anche più semplice di quanto hai scritto. Tutti i compilatori hanno delle macro predefinite relative alla piattaforma e altre cose. Quindi si può fare: Codice:
#if defined(WIN32) ...qui metti roba per Windows... #elif defined(linux) ...qui metti roba per Linux... #endif
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
così semplice...non credevo!
![]() Grazie mille! ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Tra l'altro, se può servire, segnalo una piccola "chicca" molto interessante, una funzionalità del compilatore 'gcc' che forse pochi conoscono.
Con il gcc (sia su Linux, sia con il suo porting su Windows) è possibile avere l'elenco delle macro predefinite dal compilatore eseguendo dal prompt il seguente comando: echo | gcc -E -dM -
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
questo comando me lo segno...mi potrà sicuramente servire
![]() Grazie! ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:54.