Un switch dans un macro

Résolu
Bonjour,

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

si c possible, alors sera comment la syntaxe?

merci
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    Tu parles de quelle langage?!
    1. oh, pardon

      je parle du language c

      merci
  2. Modérateur
    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
    1. 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
      1. Modérateur
        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
        1. oooook thanks