- 1
- 2
- 3
- 4
- 5
- 6
- 7
bool a,b;
...
if(a>b)
{
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+56.3
bool a,b;
...
if(a>b)
{
...
Увидел в одной либе... Си++ странный язык. Паскаль проще...
1)Скомпилируеться ли?
2)Что это значит?
0 эквивалентен false
ненулевое значение эквивалентно true (обычно единица)
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
в этом - не проще
следовало по-человечески написать a && !b
typedef int BOOL;
...
typedef int INT;
ИМХО не грех их и сравнивать.
{
false,
true
} bool;
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>
....
или что-то типа того.
2. Понимать нужно буквально: если из a не следует b
3. Паскаль отучает мыслить прямолинейно и писать то, что думаешь, и как раз провоцирует на создание говнокода.
4. Это никакой не говнокод; человеку, который более программист, чем математик, вполне простительно заменить привычное !(a<=b) на a>b.