begin process at 2012 02 12 13:59:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme de macros


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de macros

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ée 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 Probleme de compilation [ par XRaph ] Bonjour, j'ai un assez gros probleme: lorsque j'essaye de compilé un programme cpp avec Visual studio ou dev-cpp, j'ai un série d'erreurs. En essayant Les listes chaînées [ par paras00 ] Bonjour ; j'aimerai bien ke vous m'aidez à resoudre une erreur dans mon programme [^^sad1] [code=cpp] #include typedef void* T ; class element { La mémoire... [ par rivarol89 ] Bonjour, [^^!2] prérequis : [code=cpp] typedef struct { int n, m; double* tab; } matrix; double k = 12345; matrix mat* = newMatrix(5, 5) // Drag and drop depuis listview vers explorateur windows [ par Albanderuaz ] Bonjour, Je cherche à implémenter un drag and drop de ma listview vers l'explorateur windows. En fait ma listview contient des chemins vers des fichi Le nouveau GCC et le problème avec iostream.h [ par zaim khelifi ] Bonjour à tous; Dernièrement, avec le nouveau compilateur GCC 4.3, lorsqu’on compile :[code=cpp] #include int main() { cout<<"Hello Monde\n"; } [/cod GetPrivateProfileString : lire un fichier .INI [ par MaxMax0 ] Bonjour, Je n'arrive pas à compiler un exemple très simple (j'ai beau être débutant j'ai l'impression que le problème ne vient pas du code) : J'ai le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,465 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales