OVH Cloud OVH Cloud

concatenation de chaines dans des macros

11 réponses
Avatar
Arnaud Meurgues
Bonjour,

J'ai un problème avec gcc 3.4.4. En compilant :

---------------------------------------------------
#define CONCAT(a,b) a##b

static char name[] = CONCAT("un texte" ," en deux bouts");

int main() {}
---------------------------------------------------

Il me sort l'erreur suivante :
[meurgues@precision79]/tmp >g++ gcc.cpp
gcc.cpp:3:1: pasting ""un texte"" and "" en deux bouts"" does not give a
valid preprocessing token

Y a-t-il un moyen simple et élégant de contourner ce problème de gcc
(non, je ne peux pas changer la version) ?

Merci,
--
Arnaud

1 réponse

1 2
Avatar
Arnaud Meurgues
Jean-Marc Bourguet wrote:

Le comportement est explicitement indefini. (Voir 16.3.3/3)


Ah oui. Effectivement. Merci bien.

--
Arnaud

1 2