./1
- Posted On the 2010-03-22 at 07:52 pm Member since 2003-02-06, 7215 posts
Malgré mes tentatives je n'arrives pas à concaténer 2 macros en C.
Voilà ce que je cherche à faire:

#define OS_VERSION 1.1.1
#define OS_FUNC(f) f##_##OS_VERSION

Je voudrais obtenir ceci:
OS_FUNC(mafonction) -> mafonction_1.1.1

Mais gcc me renvoie:
OS_FUNC(mafonction) -> mafonction_OS_VERSION

Si vous avez une idée n'hésitez pas.
avatar la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.
./2
- Posted On the 2010-03-22 at 08:16 pm Member since 2003-08-28, 8213 posts
#define OS_VERSION 1.1.1
#define _OS_FUNC(f, v) f ## _ ## v
#define OS_FUNC(f) _OS_FUNC(f, OS_VERSION)
?
avatar « Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »
./3
- Posted On the 2010-03-22 at 08:24 pm Member since 2003-02-06, 7215 posts
Malheuruesement ça ne fonctionne pas. mourn
Toujours le même résultat: OS_FUNC(mafonction) -> mafonction_OS_VERSION
avatar la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.
./4
- Posted On the 2010-03-22 at 09:09 pm Member since 2003-02-06, 7215 posts
J'ai trouvé. Merci Sasume.

[code]
#define OS_VERSION 1.1.1

#define __OS_FUNC(f, v) f ## _ ## v
#define _OS_FUNC(f, v) __OS_FUNC(f, v)
#define OS_FUNC(f) _OS_FUNC(f, OS_VERSION)
[/code]
avatar la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.
./5
- Posted On the 2010-03-22 at 09:26 pm Member since 2001-06-16, 60274 posts
jamais compris pourquoi ça marchait pas avec la méthode de Geogeo d'ailleurs.
./6
- Posted On the 2010-03-22 at 10:22 pm Member since 2003-08-28, 8213 posts
Dans une définition de macro, un token avant ou après # ou ## n’est pas substitué.
D’ou l’appel intermédiaire pour que la substitution ait lieu.
avatar « Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »
./7
- Posted On the 2010-03-22 at 11:18 pm Member since 2001-06-16, 60274 posts
au moins c'est clair grin

merci smile