How does the C pre-proccesor know what to expand and what not to?

Viewed 61

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?

1 Answers
Related