Этот вопрос был задан мне в издевательском интервью... Очень удивился, найдя неловкие ответы...
рассмотрим макрос:
#define SQR(x) (x*x)
Пример 1:
SQR(2) //prints 4
Пример 2:
Если задана SQR (1 + 1), она не суммирует (1+1)
до 2
, а скорее...
SQR(1+1) //prints 3
Неудобно? Какова причина? Как работает этот код?
ПРИМЕЧАНИЕ. Я искал SO, но не нашел соответствующих вопросов. Если есть любезно, пожалуйста, поделитесь им!