Forcing additional expansion can make a difference when the initial expansion leads to something that can be expanded further. Trivial example:
#define MACRO(x) x
#define EXPAND(x) x
#define NOEXPAND()
is an:
MACRO NOEXPAND() (123)
MACRO (123). , , :
EXPAND(MACRO NOEXPAND() (123))
:
123
, , , : , , - , . .
, MACRO_JOIN:
MACRO_JOIN(123, MACRO NOEXPAND() (456))
MACRO_JOIN1(123, MACRO NOEXPAND() (456))