Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Ошибка в i&=MAX_LEN_CMD
Отправлено
MikeR
29 октября 2007 г. 16:11
В ответ на:
Вопрос к знатокам С, не работает конструкция if(0!=0)
отправлено <font color=gray>Sanches</font> 29 октября 2007 г. 15:31
Пример MAX_LEN_CMD = 2;
i=0; Первый раз цикл выполняется.
i++; i=1
Но i&=MAX_LEN_CMD, результат i=0;
Составить ответ
|
Вернуться на конференцию
Ответы
Ответ:Да, i&=(MAX_LEN_CMD-1) конешно. MAX_LEN_CMD степень двойки.
—
Sanches
(29.10.2007 16:19:12
85.172.28.102
,
пустое
)
В цикле используй другую переменную
—
MikeR
(29.10.2007 16:50:10
80.79.176.41
, 382 байт)
брать остаток от деления слишком ресурсоёмко
—
koyodza
(29.10.2007 17:03:22
195.214.197.203
,
пустое
)
Остаток можно взять: for( ; i>MAX_LEN_CMD; i-=MAX_LEN_CMD) ;
—
MikeR
(29.10.2007 20:11:44
213.242.24.189
,
пустое
)
Попробуй MAX_LEN_CMD=1, код будет работать. При другом значении - зациклится
—
MikeR
(29.10.2007 16:16:57
80.79.176.41
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 6 на 2:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru