В логике распределения значений для переменных всегда необходимо предусматривать "неопределенное" значение и значение по умолчанию. Отсутствие таких значений достаточно часто приводят к семантическим ошибкам.
Правило №1:
Для указателей и объектов пустым значением должно являться значение nil.
Для числовых типов лучше всего резервировать значение ноль.
Для строковых переменных - пустая строка
Для перечислимых типов необходимо предусмотреть специальное значение.
Правило №2: "Неопределенными" значениями лучше всего выбирать такие, чье двоичное представление соответствует нулю (нулям). Это увеличивает устойчивость, когда не выполнена начальная инициализация переменной, но произведена инициализация блока памяти, в котором она размещается.
Пример
Для перечислимых типов "неопределенное" значение должно быть первым, так как оно соответствует целочисленному нулю.