Un switch dans un macro

Résolu/Fermé
sarah - 21 févr. 2009 à 09:16
 sarah - 21 févr. 2009 à 10:34
Bonjour,

est ce que c'est possible de mettre un switch dans un macro

si c possible, alors sera comment la syntaxe?

merci
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 févr. 2009 à 09:19
Salut,

Tu parles de quelle langage?!
0
oh, pardon

je parle du language c

merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 févr. 2009 à 09:43
Re,
lami20j@debian:~/trash/ccm_c$ cat ccm57_switch.c
/*########################################
  #### ccm56_switch.c                 ####
  ########################################*/

#include<stdio.h>

int main()
{
        unsigned int mois;
        printf("Entrez le numéro de mois : ");
        scanf("%d",&mois);
        switch(mois){
                case 1: printf("Janvier\n");break;
                case 2: printf("Février\n");break;
                case 3: printf("Mars\n");break;
                case 4: printf("Avril\n");break;
                case 5: printf("Mai\n");break;
                case 6: printf("Juin\n");break;
                case 7: printf("Juillet\n");break;
                case 8: printf("Août\n");break;
                case 9: printf("Septembre\n");break;
                case 10: printf("Octobre\n");break;
                case 11: printf("Novembre\n");break;
                case 12: printf("Décembre\n");break;
                default: printf("Mois inexistant\n");break;
        }
        return 0;
}

lami20j@debian:~/trash/ccm_c$ gcc ccm57_switch.c
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 1
Janvier
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 2
Février
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 3
Mars
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 4
Avril
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 5
Mai
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 6
Juin
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 7
Juillet
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 8
Août
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 9
Septembre
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 10
Octobre
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 11
Novembre
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 12
Décembre
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez le numéro de mois : 0
Mois inexistant
0
merci mais je parle pas de ça,
je veux programmer un switch dans un macro,
genre
#define( x) switch (x).........

est ce que c possible, si wi sera comment la syntaxe?
merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 févr. 2009 à 10:26
Salut,
comme ça?
lami20j@debian:~/trash/ccm_c$ cat ccm58_switch.c
/*########################################
  #### ccm56_switch.c                 ####
  ########################################*/


#define x       switch(mois){\
        case 1: printf("Janvier\n");break;\
        case 2: printf("Février\n");break;\
        case 3: printf("Mars\n");break;\
        case 4: printf("Avril\n");break;\
        case 5: printf("Mai\n");break;\
        case 6: printf("Juin\n");break;\
        case 7: printf("Juillet\n");break;\
        case 8: printf("Août\n");break;\
        case 9: printf("Septembre\n");break;\
        case 10: printf("Octobre\n");break;\
        case 11: printf("Novembre\n");break;\
        case 12: printf("Décembre\n");break;\
        default: printf("Mois inexistant\n");break;\
}

#include<stdio.h>

int main()
{
        int unsigned mois;
        printf("Mois? ");
        scanf("%d",&mois);
        x;
        return 0;
}
lami20j@debian:~/trash/ccm_c$ gcc ccm58_switch.c
lami20j@debian:~/trash/ccm_c$ ./a.out
Mois? 1
Janvier
lami20j@debian:~/trash/ccm_c$ ./a.out
Mois? 0
Mois inexistant
lami20j@debian:~/tr
0
oooook thanks
0