Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

А как красивей (и надёжней) всего вывалиться из for?

Отправлено Dikoy (188.112.249.49) 12 октября 2010, г. 16:13


Такой вот код определения числа записей в слой массива в епроме.
Как лучше вывалиться из фора, по брейку или задать i больше предела сравнения?
[code]
unsigned char get_buf_layer(void) {
unsigned char lay = 0;
unsigned char i;

for(i=0;i<POINTERS_BUF_DEPTH;i++) { // сканируем буфер на предмет исчерпания числа записей в слой

if((pointers_buf[i][POINT_COUNT]) == 0xffff ) { // если текущий слой "дошёл", т.е. число записей равно 0xffff:

if( ((i+1)<POINTERS_BUF_DEPTH) && ((pointers_buf[i+1][POINT_COUNT]) != 0xffff) ) {
lay = i+1; // сохраняем номер следующего слоя
pointers_buf[lay][E_PARTR] = pointers_buf[i][E_PARTR]; // Переносим значения из предыдущего слоя (i) в новый (lay)
pointers_buf[lay][E_PARTW] = pointers_buf[i][E_PARTW];
pointers_buf[lay][E_PART_COUNT] = pointers_buf[i][E_PART_COUNT];
// i = POINTERS_BUF_DEPTH + 2; // формируем условие выхода из цикла
break;
}

} else { // если слой ещё не исчерпан,

lay = i; // сохраняем номер слоя
//i = POINTERS_BUF_DEPTH + 2; // формируем условие выхода из цикла
break;
}

}

pointers_buf[lay][POINT_COUNT]++; // инкремент счётчика износа слоя

return lay;
}
[/code]


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 89:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru