Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme de macros [ Archives / Au secours ] (vdumont)

vendredi 24 mars 2006 à 17:28:55 | Probleme de macros

vdumont

Bonjour, jai un probleme avec mes macros. gcc 3.4.2 me dit:

m3d_c_bd.cpp:63:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:84:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:84:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:84:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:84:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:124:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:124:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:124:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_bd.cpp:124:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:368:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:368:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:368:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:368:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:524:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:524:1: pasting ")" and "->" does not give a valid preprocessing token
m3d_c_mai.cpp:524:1: pasting ")" and "->" does not give a valid preprocessing token


Ces erreurs surviennent sur lappel au 2 macros suivante

#define SUPPRIMER_LISTE(type,tete,fin,entite)\
{\
struct mknom(st_,type) *pcourant, *scourant ;\
pcourant = PREC(entite) ;\
scourant = SUIVANT(entite) ;\
if (pcourant== NULL) {\
if (scourant == NULL) { \
PREC(entite) =  NULL ;\
SUIVANT(entite) = NULL ;\
tete =  NULL ;\
fin =  NULL ;\
}\
else {\
scourant->prec = NULL ;\
PREC(entite) =  NULL ;\
SUIVANT(entite) = NULL ;\
tete = scourant ;\
}\
}\
else {\
if (scourant == NULL) \
{pcourant->suivant = NULL ;\
PREC(entite) =  NULL ;\
SUIVANT(entite) = NULL ;\
fin = pcourant  ;}\
else {pcourant->suivant = scourant ;\
scourant->prec = pcourant ;\
PREC(entite) =  NULL ;\
SUIVANT(entite) = NULL ;}\
}\
}



et



#define INSERER_TETE_LISTE(tete,fin,entite)\
PREC(entite) = NULL ;\
if (tete != NULL) {\
/* la queue est inchangee */\
SUIVANT(entite) = tete ;\
PREC(tete) = entite ;\
tete = entite ;\
}\
else {\
SUIVANT(entite) = NULL ;\
tete = entite ;\
fin = entite ;\
}



Qui eux utilisent PREC et SUIVANT

#define PREC(entite) mknom((entite),->prec)
#define SUIVANT(entite) mknom((entite),->suivant)

Qui eux utilisent mknom

#define mknom(a,b) a##b




Merci de venir a mon secours!

vendredi 24 mars 2006 à 19:01:07 | Re : Probleme de macros

Pamaury

rien qu'à voir la tête de tes macros j'ai qu'une chose à dire:
fait des fonctions
car ici ton code est bien gros pour être placé en macro à chaque fois(çà augmente inutilement la taille de l'exe)
De plus, tu n'aura plus ces ignobles erreurs de préprocesseur .

A m a u r y

vendredi 24 mars 2006 à 21:14:57 | Re : Probleme de macros

nightlord666

Membre Club
Personnellement j'aurais conseillé la même chose, car mettre ça en macro, ça revient à ne pas utiliser la puissance du C, qui est justement la possiblité de créer des fonctions, et ça gène à la lisibilité du code.



Cette discussion est classé dans : and, cpp, entite, m3d, pasting


Répondre à ce message

Sujets en rapport avec ce message

encore un probleme de lien opengl [ par seichettmorru ] je mets bien #include j'ai aussi opengl32.dll dans system32"Compilateur: Default compilerBuilding Makefile: "C:\Documents and Settings\Mathias\Mes doc Impossible de compiler mon jeu de 421 avec Visual C++ 2005 Express Edition pourquoi? Alors qu'il se compile parfaitement avec d'autres compilateurs? [ par ndubien ] Bonjour, j'ai essayer de passer mon jeu de 421 (voir http://www.cppfrance.com/codes/421_38215.aspx) sur Visual C++ 2005 Express Edition, et lorsque programme permettant de créer un sous repertoire sur la racine du discque avec la fonction39h de l'interruption dos 21h [ par dosslino ] bonsoir , je suis confronté à ce message tout le temps si je cherche à compiler mon programme comment faire ?voici le message:Compiler: Default compil Utilisation variable dans 2 fichiers CPP [ par mahojul ] Bonjour à tous, Je travaille avec Windows Xp Pro SP3 et Visual C++ 6.0. J'ai du reprendre un projet "VC++" d'un ancien collègue contenant plusieurs fi get teh font system and modify it [ par khaliloenit ] Salut, Je veux savoir comment puis-je obtenir  la police du système et  la modifier avec un autre et de l'appliquer de nouveau. le problème que le c préprocesseur en cpp [ par koukoudev ] Bonjour,j'ai un projet qui consiste à la réalisation d'un programme qui traite les directives d'inclusion(préprocesseur) en cpp si vous avez des exe E/S de dll [ par HeXa2 ] Bonjour à tous!Je suis en train de developper une dll en c++Mes fichiers sont H2BUSDLL.cpp et H2BUSDLL.hDans mon header, je déclare mes classes et dan drag and drop [ par mayssakh84 ] Bonjour en fait je dois réaliser une application qui permet de créer des templates ( des présenatation graphiques ). l'utilisateur aura la possiblité problème Listview, notification, imagelist [ par juju116 ] voilà j'ai créer ma listview j'ai en fin un truc de moi meme, mais bon j'avais de l'aide quand meme seulement  ya un hic donc si l'on pouvait m'aider, Appeler les fonctions dans un .cpp [ par samuraijack1412 ] Bonjour,J'ai crée un programme donc la fonction main() est dans un .cpp. Maintenant, je veux appeler les autres fonctions dans un autre fichier .cpp.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.