Ifdef

cs_helena123 Messages postés 22 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 25 août 2003 - 16 avril 2003 à 22:38
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 16 avril 2003 à 23:40
salut les garcons,
voila mon probleme,
je fais un programme en C et je voudrais que selon que l'os ( linux,windows) surlequel tourne la machine, il fasse appel a telle ou telle fonction ...
On m'a dit que l'on pouvait s'en sortir, effectivement , en mettant des :
#ifdef WIN
#endif

#ifdef BSD
#endif

mais il y a vraiment une ligne de commande a mettre a la place de WIN et BSD ... quelqu'un la connait ? Pleaaaaase.
c'est super urgent car je dois le rendre vendredi...
Un grand merci et un gros bisou a ceux qui essaient de m'aider,
xxx Helena xxx

1 réponse

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
16 avril 2003 à 23:40
c'est pas WIN mais _WIN32

si tu es sur que tu compile que sous windows ou un unix tu peut faire:
#ifdef _WIN32
...
//code windows
...
#else
...
//code linux
...
#endif

sinon pour la ligne de commande tout dépend du compilateur utilisé. Mais avec cet exemple que je t'ai donné pas besoin de précisé quelque chose dans la ligne de commande.

sinon:
pour windows si c'est Visual C++, tu fais
ALT+F7 (ou menu Projet/Settings)
onglet C/C++
Catégorie: General
tu ajout ensuite WIN dans le champ texte initulé: Preprocessor definitions

ou si tu utilise le compilateur Visual C++ en ligne de commande (cl.exe) le paramètre est /D "WIN"

pour linux, si tu utilise gcc le paramètre c'est -d BSD

il est à noté qu'avec gcc la constante __gcc__ est prédéfinie (pas besoin de l'ajouter dans la ligne de commande.

Les constantes préfinies dépendent du compilateur utilisé.

Core Breaker :)
0
Rejoignez-nous