Это плохая идея использовать -1 как недопустимое значение для значения перечисления (для перечислений, которые начинаются с 0 или больше). Для неинициализированных значений или значений, которые больше не должны иметь допустимых значений.
Как насчет тестирования того, как функции работают с недействительными
#define INVALID_ENUM_VALUE -1
Как насчет установки случайного значения uint в -1, если оно неинициализировано / недопустимо (скажем, идентификатор ресурса).
#define INVALID_UNINT_VALUE -1
Есть ли потенциальные проблемы с переносом? Маловероятно, что действительное целое число будет иметь это значение, если программа не очень сложна и не выполняется в течение длительного времени. Должен ли я использовать UINT_MAX? Сдаться и просто использовать bool для отслеживания действительного состояния?