Tom's Guide > Forum > Programmation > Question sur les macros en c

Question sur les macros en c

Forum Programmation : Question sur les macros en c

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

T'es sûr ?
refais l'expérience

Répondre à Anonyme

j'ai retesté en repartant de zéro mais ca fait toujours le meme chose :sweat:

Répondre à quarty

dans le doute j'ai essayé et le printf affiche bien la modif, tu compiles comment

Répondre à Anonyme

Je fait compiler & executer.

Répondre à quarty

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

Répondre à Anonyme

j'utilise dev-c++ mais j'ai aussi testé le code sur code::block

Répondre à quarty

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

Répondre à Anonyme

en faite c'est pas bien grave :) c'était juste pas curiosité

Répondre à quarty

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.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

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


Message édité par quarty le 11-01-2008 à 19:26:58
Répondre à quarty

as-tu le log de compilation du second cas?

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > Question sur les macros en c
Aller à :

Il y a 1641 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens