Замена происходит только для функционального макроса, если за именем макроса следует левая скобка. Итак, следующие все вызывают функциональный макрос MY_MACRO()
:
MY_MACRO()
MY_MACRO ( )
MY_MACRO
( )
Но это не будет:
MY_MACRO SomethingElse
Это зависит от того, как вы используете макрос и для чего он используется, важно ли это. В идеале все ваши макросы должны иметь разные имена; если вы резервируете все прописные идентификаторы для макросов, то не должно иметь значения, используете ли вы объектный или функциональный макрос с нулевыми параметрами.
Эстетически, обычно (но не всегда) чище не иметь функционально-подобные макросы, которые принимают нулевые параметры.