Votre question

Question sur les macros en c

Tags :
  • Programmation
Dernière réponse : dans Programmation
8 Janvier 2008 23:21:54

Salut

j'aurais une petite question sur les macro, admettons je fait ca :

#define TEXT() printf("Coucou\n"); \
printf("kikou\n"); \
printf("plouf\n"); \
printf("nene\n");

quand je compilerais ca m'affichera Coucou, kikou,....etc . jusque la pas de problème mais quand je veux modifier kikou par kirikou par exemple quand je recompile il y a encore marqué kikou. pourquoi ca me fait ca ?


Merci de vos réponses

Autres pages sur : question macros

Anonyme
8 Janvier 2008 23:48:13

T'es sûr ?
refais l'expérience
9 Janvier 2008 15:17:38

j'ai retesté en repartant de zéro mais ca fait toujours le meme chose :sweat: 
Contenus similaires
Anonyme
9 Janvier 2008 15:56:02

dans le doute j'ai essayé et le printf affiche bien la modif, tu compiles comment
9 Janvier 2008 18:55:54

Je fait compiler & executer.
Anonyme
9 Janvier 2008 19:10:12

ok tu utilises un IDE.. apparement il ne prends pas un compte les modif du fichier et utilises d'ancien fichier .o, tu utilises quel logiciel
9 Janvier 2008 19:31:40

j'utilise dev-c++ mais j'ai aussi testé le code sur code::block
Anonyme
10 Janvier 2008 11:32:05

je peux pas tester avec ces logiciels, c'est si grave ? au pire il faut supprimer les .o à la main ou voir dans les options de compilations
10 Janvier 2008 19:59:52

en faite c'est pas bien grave :)  c'était juste pas curiosité
a b L Programmation
10 Janvier 2008 20:25:07

Montre tout ton code, parce que ce que tu dis n'est pas possible.

les #defines sont remplacés lors de la pré-compilation (avant la compilation), mais c'est le compilateur qui le fait. Donc, si tu as recompilé et "re-linké", la modification est prise en compte.
11 Janvier 2008 19:24:40

voila le code:

#define TEXT() printf("Coucou\n" ); \
printf("kikou\n" ); \
printf("plouf\n" ); \
printf("nene\n" );
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

TEXT();

system("PAUSE");
return 0;
}

m'affichera:
Coucou
kikou
plouf
nene
et si je quitte la fenetre msdos et que je fait:

voila le code:

#define TEXT() printf("Coucou\n" ); \
printf("kikou\n" ); \
printf("plouf\n" ); \
printf("nene\n" );\
printf("ne s'affiche pas\n" );
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

TEXT();

system("PAUSE");
return 0;
}

m'affichera:

Coucou
kikou
plouf
nene
au lieu de:
Coucou
kikou
plouf
nene
ne s'affiche pas
a b L Programmation
11 Janvier 2008 20:05:10

as-tu le log de compilation du second cas?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS