Всегда ли ИСТИНА имела ненулевое значение? - PullRequest
21 голосов
/ 19 сентября 2008

У меня есть сотрудник, который утверждает, что TRUE раньше определялся как 0, а все остальные значения были FALSE. Я мог бы поклясться, что на каждом языке, с которым я работал, если бы вы могли даже получить значение для логического значения, значение FALSE равно 0. Раньше TRUE было 0? Если да, то когда мы перешли?

Ответы [ 22 ]

0 голосов
/ 19 сентября 2008

Для языков без встроенного логического типа единственное соглашение, которое я видел, это определять TRUE как 1 и FALSE как 0. Например, в C оператор if выполнит предложение if, если условное выражение оценивает что-либо кроме 0.

Я даже однажды видел документ с инструкциями по кодированию, в котором конкретно сказано, что не следует переопределять ИСТИНА и ЛОЖЬ. :)

Если вы используете язык со встроенным логическим значением, например C ++, тогда ключевые слова true и false являются частью языка, и вам не следует полагаться на то, как они на самом деле реализованы.

0 голосов
/ 19 сентября 2008

В таких языках, как C, логическое значение отсутствует, поэтому вам нужно определить свой собственный. Могли ли они работать с нестандартными переопределениями BOOL?

...