Bases de la programmation en C
#define DEBUG 0
#ifdef DEBUG
printf("A\n");
#endif
#if DEBUG
printf("B\n");
#endifQuelle est la sortie obtenue lorsque le code ci-dessus est écrit dans la fonction main et exécuté ?
- ASeul A est affiché
- BRien n'est affiché
- CA et B sont affichés
Afficher la réponse et l'explication
Réponse : A. Seul A est affiché
#ifdef DEBUG vérifie seulement si une macro nommée DEBUG est définie, sans regarder sa valeur. DEBUG est défini avec la valeur 0 : la condition est vraie et l'instruction qui affiche A est compilée. #if DEBUG examine la valeur, qui est 0 : la condition est fausse et l'instruction qui affiche B est supprimée. Pour activer ou désactiver du code de débogage, ce genre d'incohérence se produit si l'on ne choisit pas une fois pour toutes entre #ifdef et #if pour le test.
Continuer : 9 autres questions sur Bases de la programmation en C