I\'m trying to do (what I would have thought) was a simple macro expansion
#define CLEAR_DIGIT(a,b) iconMap[a] &= ~(b) #define R1 4, 16 CLEAR_DIGIT(R1
You could use a helper macro. See also double-stringize problem
#define CLEAR_DIGIT_HELPER(a,b) iconMap[a] &= ~(b) #define CLEAR_DIGIT(x) CLEAR_DIGIT_HELPER(x) #define R1 4, 16 CLEAR_DIGIT(R1);