Цитата(zltigo @ Jun 29 2015, 14:50)

Не должен категорически и не делает этого.
Проглатывать и ПРАВИЛЬНО интерпретировать это разные вещи. Проглотить без предупреждения, приняв неопределнное значение за 0, может, если компилятор тупой или если
предупреждения подавлены ( обычное дело для всяких "примеров" и "библиотек" ).
Да ладно... у меня VS2010 в режиме cpp съел это без проблем и выдал правильный ответ 18
#define SUMM (NUM+8)
#define NUM 10
int aa = SUMM;
Единственно, что мне бы ни за что не пришло в голову такое написать....
Вообще, ТС, завязывали бы вы с макросами, если возможно.. А то потом будете месяц искать глупую ошибку или еще хуже, эта глупая ошибка прокрадется в кхм... продакшен

из соседнего топика.
если у вас более-менее пристойный компилятор пользуйтесь константами и голова болеть не будет.
const uint32 MyNumber = 10;
const uint32 MyAnotherNumber = MyNumber+8;
inline uint32 Sum(uint32 arg) {return arg + 8;}
---
Вот вам небольшой пример макроса. Найдите в нем примерно 6 ошибок, которые приведут к неопределенному поведению вашей программы.
#define Min( A, B ) A<B ? A:B
Сообщение отредактировал CrimsonPig - Jun 29 2015, 14:16