Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятки с компилятором
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
alw39
Доброго всем дня
пытаюсь проанализировать разряды buf
byte buf[1]=0x84;
if ( buf[0] &0x80==0x80).... (128) bit.b #0x1,&buf
if ( buf[0] &0x40==0x40).... (0) bit.b #0x1,&buf
.....
выражения расчитываются правильно -128 и 0 но условия не выполняются
в ассемблерном коде вместо 128 и 64 #0x1 откуда он это берет?
Оптимизация отключена. Девайс на msp430
Rst7
Цитата(alw39 @ Nov 9 2007, 14:53) *
в ассемблерном коде вместо 128 и 64 #0x1 откуда он это берет?


Сделайте так - if ( (buf[0] &0x80)==0x80)

а 1 - это 0x80==0x80 wink.gif
alw39
Спасибо помогло. Почему то был уверен что приоретет & выше ==,пол дня потерял.
Непомнящий Евгений
или так if ( buf[0] &0x80) {}
Rst7
Цитата(Непомнящий Евгений @ Nov 10 2007, 08:47) *
или так if ( buf[0] &0x80) {}


Кстати да, именно, сам написал бы именно так, почему стормозил - не знаю... Бывает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.