Let's say we have a macro defined as such
#define VALUE_ENTRY(a, b, c, d, e, f, g) \
case E_##a##e: temp.a##e = d; break;
How does the pre-processor know that the 'e' in 'temp' shouldn't be expanded? Is it due to not having ## in front of the 'e'?
Also, should temp.a##e be temp.##a##e?