que estoy tratando de hacer (lo que habría pensado) era una expansión de macro sencillaC pre-procesador de macros de expansión
#define CLEAR_DIGIT(a,b) iconMap[a] &= ~(b)
#define R1 4, 16
CLEAR_DIGIT(R1);
Ahora me esperaría que para ampliar a CLEAR_DIGIT (4,16) que se expande a iconMap [4] & = ~ 16 sin embargo, no ... Si hago CLEAR_DIGIT una función:
void ClearDigit(unsigned char a, unsigned char b)
{
iconMap[a] &= ~b;
}
#define R1 4, 16
ClearDigit(R1);
entonces funciona bien, así que R1 está ampliando a los dos argumentos no es un problema ... ¿Hay alguna forma de obligarlo a expandir R1 antes de hacer la expansión de la función de macro?
relacionadas: http://stackoverflow.com/questions/3776750/macros-evaluation-in-c-programming-language – MByD