Teniendo en cuenta:C macro argumento de 'almacenamiento'
#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);
}
que no funciona,
cómo puedo hacer que funcione? La idea básica es que tengo una lista de argumentos que quiero pasar a dos macros diferentes, sin repetir la lista de argumentos largos cada vez.
¿Hay alguna manera de hacerlo? [Le invitamos a modificar f & g; incluso puede modificar A & la forma en que llamo las macros. Los únicos requisitos son: 1) la lista arguemnt sólo puede aparecer una vez 2) no puede ser codificado ... de modo que pueda llamar a las macros con argumentos diferentes
Si eres solución no hace bastante trabajo, pero "casi funciona" (para tu definición de casi), me gustaría escucharlo también, quizás pueda hacerlo funcionar.
Gracias!
Editar: f & g debe ser macros. Capturan los nombres de los símbolos y los manipulan.
Si va a modificar los requisitos de su pregunta original, por favor proporcione un ejemplo adecuado que muestre lo que realmente quiere. –