- 1
return (a >= factor || (a == factor && (c & 1) == 1)) ? 1 : 0;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+140
return (a >= factor || (a == factor && (c & 1) == 1)) ? 1 : 0;
https://github.com/mono/mono/blob/master/mono/metadata/decimal.c
guest 25.06.2011 12:29 # −7
guest 25.06.2011 13:23 # −7
absolut 25.06.2011 13:40 # −5
return a >= factor;
carsten 25.06.2011 18:24 # −3
Разве у true значение гарантировано быть 1? По-моему по стандартам гарантировано только, что "не 0".
Там по замыслу нужно int возвратить, а не bool.
В общем, это то же, что и return (a >= factor)? 1: 0;
Один фиг компилятор скорее всего заоптимизирует.
gegMOPO4 25.06.2011 18:52 # +1
The result has type int.
carsten 25.06.2011 19:07 # −2
Но видимо какие-то проблемы были с компиляторами, раз многие ентого боятся
carsten 25.06.2011 19:14 # −1
Всё-таки это не всем читающим код будет очевидно, особенно после того как мир познал C++, C#, Java (он уже не будет таким, как прежде).
Плюс ещё семантика. Т.е. например char гарантирован быть единицей, но я никогда не пишу в си "malloc(4)", я пишу malloc(sizeof(char)*4) -- чтобы видна была *семантика* -- что мы выделяем четыре символа, а не четыре непонятных абстрактных байта.
Тут так же, имхо. Мы показываем семантику -- что мы возвращаем число, а не bool. Пусть синтаксически и избыточно...
gegMOPO4 25.06.2011 19:50 # −1
gegMOPO4 25.06.2011 18:53 # −2
absolut 25.06.2011 22:15 # 0
guest 25.06.2011 15:27 # −1
Lure Of Chaos 25.06.2011 16:59 # 0
guest 26.06.2011 00:13 # +1
Тут я вижу достаточно разумные размышления есть. Нечего на carsten, gegMOPO4 и absolut вешать некрасивый ярлык.
Lure Of Chaos 26.06.2011 00:21 # +1
guest 26.06.2011 00:33 # −1
ps: >подводом мыши
Спасибо, не знал.
guest 26.06.2011 22:28 # 0
???
absolut 26.06.2011 22:52 # 0
guest 26.06.2011 22:57 # 0
guest 26.06.2011 23:34 # 0
Чем же эти оси не заслужили начинаться с большой буквы?
И что здесь в списке делают языки? Неужели вы предрекаете их появление?
absolut 27.06.2011 10:02 # 0
http://govnokod.ru/user/2895
guest 27.06.2011 10:05 # 0
Delphi точно видел, по-моему ещё *Govno есть
3.14159265 28.06.2011 15:37 # 0
guest 28.06.2011 15:38 # 0
Может наоборот?
PascalGovno 27.06.2011 10:21 # +3
Впрочем, это было быстро разъедено раком, eg: PHPGovno - чистой воды тавтология.
guest 26.06.2011 23:33 # +1
SmackMyBitchUp 27.06.2011 17:32 # 0
TheCalligrapher 26.06.2011 00:29 # +2
Если функция, в которой встретился этот код, имеет именно булевскую семантику (т.е. возвращает булевский по своей сути результат), то тогда, конечно, использование оператора '?:' не обосновано и лишь запутывает код.
Если же эта функция имкеет численную сементику (т.е. например возвращет некий коэффициент, который просто по стечению обстоятельств оказался равен либо 0, либо 1), то все становится наоборот: правильно реализовывать именно так, как приведено выше, с использованием оператора '?:'.
В последнем случае оно, конечно, будет работать и без '?:', т.к. "истина" в Си - это 1, а ложь - это 0, но тем не менее подобное смещение булевского и численного контекстов есть бессмысленное хакерство, говнокодинг и запутывание кода.
guest 01.07.2011 19:16 # +1
carsten 05.07.2011 07:13 # 0
То-то же, а меня местные говнохакеры минусуют :) Но ещё придирка в самом условии -- вторая часть никогда не выполнится.
guest8 08.04.2019 21:00 # −999
guest8 09.04.2019 11:03 # −999
guest8 09.04.2019 18:08 # −999