Вопрос

Глядя на некоторый код, я заметил, что другой разработчик изменял каждый экземпляр true на! false. Почему ты бы так поступил? ТНХ

Это было полезно?

Решение

Нет веских причин писать! false вместо true.
Плохие причины могут включать в себя запутывание (затрудняющее чтение кода), личные предпочтения, плохо продуманный глобальный поиск и замена и махинации, преобразовывающие логические значения в целые числа.

Возможно, что некоторая путаница была вызвана определениями ИСТИНА и ЛОЖЬ в Win32, которые не относятся к типу bool, а являются целочисленными и могут вызывать предупреждения при использовании в логических выражениях. В основном, все, что не равно нулю, является «истинным», но если вы хотите убедиться, что «истинное» " всегда равен единице, если вместо логических значений используются целые числа, иногда вы можете увидеть такие махинации. Это все еще не веская причина; -)

Другие советы

Понятия не имею, и некоторое время я писал на C ++. Я подозреваю, что по каким бы то ни было причинам, они не были хорошими.

Я думаю, что это историческая вещь. В IIRC возникла проблема с некоторыми компиляторами C / C ++, которые знали, что компилятор будет использовать для представления как true. Вы можете знать, что false равно нулю, следовательно! False будет тем, что текущий ABI будет иметь как true.

Обычно это избыточно, но есть несколько особых случаев, когда это полезно, но я не могу придумать ни одного.

Это может быть необходимо, если строка

#define true false

просто случилось , чтобы быть где-то в заголовках:)

возможно, он получил так много правды и лжи в своем коде, и он хотел бы полностью изменить его, он может просто использовать поиск и замену своего редактора

На самом деле я не знаю, но может быть ИСТИНА - это не 1 (любая вещь > 0), а ЛОЖЬ - это ноль, поэтому " не ложь " = 1, так что он будет в безопасном месте

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top