I came across this question in an Embedded interview question set.
#define cat(x,y) x##y
concatenates x
to y
. But cat(cat(1,2),3)
does not expand but gives preprocessor warning. Why?
Does C not encourage Recursive Macro expansions ? My assumption is the expression should display 1##2##3
. Am i wrong ?