[an error occurred while processing this directive]
Все правильно. Операция инверсии заставляет компилятор выполнить
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 21 июня 2005 г. 09:49
В ответ на: В первых двух случаях (закомментариеных) он проверку условия цикла не выполняет, просто SLEEP и все. отправлено Алехин Александр 21 июня 2005 г. 09:23

преобразование левой части равенства к типу int. При этом происходит расширение знака (1 в данном случа) в старший байт. В правой части неравенства стоит число без знака (0xFF). При сравнени оно расширяется до unsigned, т.е. старший байт заполняется нулями. Естественно, что неравенство выполняется всегда, и проверка условия просто становится не ненужной.
Можно попробовать привести инверсию к типу unsigned char явным образом и тогда все встанет на свои места.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru