При определении макроса с нулевыми аргументами мы можем определить его с помощью круглых скобок, что больше похоже на функцию или без скобок.
Какой предпочтительный (вероятно, нет правильного ответа) способ сделать это?
Если вы намереваетесь создать макрос, имитирующий функцию, используйте версию (). В противном случае нет.
()
Как правило, я ожидаю, что MACRO() будет генерировать исполняемый код, который может иметь побочные эффекты. Я использую MACRO (без скобок) для более структурных вещей, которые приводят к декларациям, шаблонам или константам.
MACRO()
MACRO
Да, мы можем , и я не думаю, что на самом деле есть какая-то конкретная техническая причина, по которой одно лучше другого.Тем не менее, условно мы бы опускали () там, где это не требуется.