Vu:C l'argument macro 'stockage'
#define f(x, y) (x+y)
#define g(x, y) (x*y)
#define A 1, 2
#define B 2, 3
int main() {
int a = f(A);
int b = g(A);
int c = f(B);
int d = g(B);
}
qui ne fonctionne pas,
comment puis-je le faire fonctionner? L'idée de base est que j'ai une liste d'arguments que je veux passer à deux macros différentes, sans répéter la liste des arguments longs à chaque fois.
Existe-t-il un moyen de le faire? [Vous pouvez modifier f & g; vous êtes même invités à modifier A & la façon dont j'appelle les macros. Les seules exigences sont les suivantes: 1) la liste arguemnt ne peut apparaître qu'une seule fois 2) il ne peut pas être codé en dur ... pour que je puisse appeler les macros avec des arguments différents
Si vous êtes solution ne tout à fait travailler mais «presque fonctionne» (pour vous la définition de presque), je voudrais l'entendre aussi, peut-être que je peux le fudge au travail.
Merci!
Édition: f & g doit être des macros. Ils capturent les noms des symboles et les manipulent.
Si vous modifiez les exigences de votre question initiale, s'il vous plaît fournir un exemple approprié qui montre ce que vous voulez réellement. –