La macro "VER" est définie comme "((u_long)1)" dans un autre fichier d'en-tête que je ne peux pas modifier.
Dans mon code, j'ai besoin de composer la fonction "test_1" en utilisant "test" et VER. Cependant, le compilateur a signalé une erreur car il a généré "test_((u_long)1)" au lieu de "test_1".
Ma question est : Comment écrire une macro pour qu'elle puisse générer "test_1" ?
Merci d'avance !
#define VER ((u_long)1) /* Ceci est défini dans un autre fichier d'en-tête que je ne peux pas modifier */
#define paste(x, y, z) x ## y ## z
#define paste2(x, y, z) paste(x, y, z)
#define fcall(fname) paste2(fname, _, VER)
int test_1() {
return 0;
}
int main() {
fcall( test )();
return 0;
}