Что плохого в конструкции If (i!=1) ?

  • Автор темы Trs
  • Дата начала
T
#1
Прочитал в одной статье:
Не читают документацию, не знают приоритета операторов и не знают, как работают основные конструкции используемого ими языка программирования. Например, в языке Си при проверке булевского значения могут написать if(i!=1), и в большинстве своем не знают, почему такая конструкция, хотя и сработает правильно в большинстве случаев, в общем случае является ошибочной. Многие не могут объяснить, почему выражение “3>2>1” - ложно и почему, если сложить в цикле 1001 раз по 0.001, результат записать в переменную а, а потом его сравнить: “a==1.001”, то ответ «равно» будет с некоторой, без сомнения, отличной от нуля, но, тем не менее, весьма маленькой вероятностью. Не понимают, в связи с чем при записи в ос Windows в бинарный (ли?) файл числа 137.0534 в формате float, это число записывается и считывается нормально, а если вместо этого числа записать “138.0534”, то всё начинает глючить. И тд, и тп. Если, конечно, не искали ответы именно на эти вопросы заранее.
С большинством примеров понятно, а что плохого в if(i!=1)? До меня не доходит. Просветите пожалуйста.
 

grigsoft

Well-known member
15.11.2005
735
0
#3
Думаю, ключевое слово здесь - "при проверке булева значения" - т.е. BOOL\bool i, а там не уверен что стандартом определено реальное значение для TRUE.