Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mon programme plante (préprocesseurs)

Et je ne comprend pas ce que dit le debugger...

Sujet résolu
    23 novembre 2007 à 17:31:51

    Bonjour à tous !

    Je viens de finir le chapitre sur les préprocesseurs (partie II) et j'ai fait un programme où j'utilise des macros.

    Seulement voilà, le debugger indique cela, et je ne comprend pas :

    Citation : debugger

    1) File : main.c ; line : 4 ; message : '#' is not followed by a macro parameter.
    2) File : main.c ; line : 13 ; message : error: syntax error before "SITUATION".



    Et voilà les lignes de code...

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #define WHAT() printf("Bonjour !\n"); \
    4. #define SITUATION(age) if (age >= 18) \
    5.                printf("Vous etes majeur.\n"); \
    6.                else \
    7.                printf("Vous etes mineur.\n");
    8. int main(int argc, char *argv[])
    9. {
    10. WHAT()
    11. SITUATION(22)
    12.   system("PAUSE");
    13.   return 0;
    14. }


    Merci d'avance de votre aide ;)
    ++
    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2007 à 17:40:55

      les \ sont a eviter
      (sauf pour fair des defines sur plusieurs lignes.)
      1. #define CONDITION(x) if(x==1) \
      2. {printf("un");}


      ne met pas de () dans le nom de la macro sans parametre!
      • Partager sur Facebook
      • Partager sur Twitter

      Mon programme plante (préprocesseurs)

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown