- 1
- 2
- 3
- 4
- 5
- 6
- 7
bool a,b;
...
if(a>b)
{
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+56.3
bool a,b;
...
if(a>b)
{
...
Увидел в одной либе... Си++ странный язык. Паскаль проще...
1)Скомпилируеться ли?
2)Что это значит?
guest 24.10.2009 12:55 # 0
0 эквивалентен false
ненулевое значение эквивалентно true (обычно единица)
guest 24.10.2009 12:59 # +1
guest 24.10.2009 17:42 # +1
guest 27.10.2009 20:41 # 0
The relational operators group left-to-right.
.....
The operands shall have arithmetic, enumeration or pointer type.
bool will be converted to int, where false->0, true->1
guest 24.10.2009 13:17 # 0
в этом - не проще
guest 24.10.2009 13:29 # 0
gecko 24.10.2009 13:38 # +5
следовало по-человечески написать a && !b
guest 24.10.2009 14:58 # −2
typedef int BOOL;
...
typedef int INT;
ИМХО не грех их и сравнивать.
pushkoff 25.10.2009 18:42 # 0
guest 27.10.2009 18:12 # −2
{
false,
true
} bool;
guest 27.10.2009 18:51 # +1
guest 27.10.2009 20:38 # +1
guest 29.10.2009 21:13 # 0
guest 03.11.2009 14:52 # 0
if(a && !b) { ....
mov eax, a
test eax, eax
jz <else>
mov eax, b
test eax, eax
jnz <else>
....
if(a > b) { ...
mov eax, a
cmp eax, b
jbe <else>
....
или что-то типа того.
guest 03.11.2009 16:07 # 0
guest 08.11.2009 17:22 # 0
2. Понимать нужно буквально: если из a не следует b
3. Паскаль отучает мыслить прямолинейно и писать то, что думаешь, и как раз провоцирует на создание говнокода.
4. Это никакой не говнокод; человеку, который более программист, чем математик, вполне простительно заменить привычное !(a<=b) на a>b.