В C по крайней мере каждое положительное значение, кроме 0, рассматривается как логическое значение true. Но как насчет отрицательной ценности? Я сделал несколько тестов, и кажется, что и отрицательные значения рассматриваются как логические истины. Является ли это определенным поведением или конкретной реализацией?
(Я подумал об этом, когда увидел в вопросе, кто-то продвигает объявление "true" и "false" в enum как 1 и 0.)