Здравствуйте, slavo, Вы писали:
S>Подстава в том, что в [***] нет ни старого значения, ни нового. VALUE просто undefined. Почему? И как решить эту задачу?
S>Компилятор GCC.
В твоём подходе никак, так как внутри описания дерективы define подстановки не выполняются. Они выаполняются уже потом, в коде. Это как переменные в функциональных языках
Можешь попробовать так сделать:
#define VALUE_DEFAULT 1
#define VALUE VALUE_DEFALT
// Тут код типа какой-то
#undef VALUE
#define VALUE 2
// Тут твой код
#undef VALUE
#define VALUE VALUE_DEFALT
// Тут снова всё как было...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском