Макрос с нулевыми аргументами - с круглыми скобками или без них - PullRequest
2 голосов
/ 26 сентября 2011

При определении макроса с нулевыми аргументами мы можем определить его с помощью круглых скобок, что больше похоже на функцию или без скобок.

Какой предпочтительный (вероятно, нет правильного ответа) способ сделать это?

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

Если вы намереваетесь создать макрос, имитирующий функцию, используйте версию (). В противном случае нет.

3 голосов
/ 26 сентября 2011

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

1 голос
/ 26 сентября 2011

Да, мы можем , и я не думаю, что на самом деле есть какая-то конкретная техническая причина, по которой одно лучше другого.Тем не менее, условно мы бы опускали () там, где это не требуется.

...