1) Why is the macro MSG not expanded in the following expression?
#define MSG Hello #define HELLO(name) MSG ## name void HELLO(Dave) () {}
#define MSG Hello #define cat(x, y) x ## y #define cat2(x, y) cat(x, y) #define HELLO(name) cat2(MSG,name)
Live demo @ ideone.