Показать сообщение отдельно
Старый 24.08.2004, 12:22   #18  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано mazzy
думаю, что все проще.
при присваивании булеву значению берется только младший байт

т.е. b = i выполняется как b = lowbyte(i)
Нет. Выполните Job из моего последнего сообщения и поймете что всё обстоит именно так как я в нём написал, а именно: b = ( i > 255 ) ? 255 : lowbyte( i );

Преобразование real->boolean происходит по видимому еще хуже - сперва происходит преобразование real -> int с потерей дробной части (!!!) и только потом уже (по всё той же корявой схеме) из int -> boolean. Тихий ужас.
Спасает только то что эти корявости имеют место быть только при присвоении к булевским переменным/параметрам ф-й, подвыражения в выражениях же вычисляются правильно.