6.10.3 macro Substitution
Constraints
1, two alternate lists are the same, and all whitespace separators here are considered identical if and only if the preprocessing characters in the two substitution list have the same number, order, spelling, and whitespace delimiter.
2. The identifier of a macro that is currently defined as a similar object should not be redefined by another #define preprocessing indicator, unless the second definition is a macro definition of a similar object, and the two replacement lists are identical. Similarly, the identifier of a macro currently defined as a function should not be redefined with another #define preprocessing indicator, unless the second definition is a macro definition of a similar function with the same number of formal parameters and spellings, and two replacement lists are identical.
3. In a macro definition of a similar object, there should be a white space between the identifier and the replacement list.
ISO/IEC 9,899:2011 clause 6.10.3--macro replacement