Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
for (size_t i = 0; i < OBJECTS_COUNT && objects[i] != NULL; ++i)
objects[i]->Draw();
objects — это отсортированный массив указателей на рисуемые объекты, если что. И вот, как-то этот код начал глючить — не отрисовывались объекты. Отладили всё это дело вдоль и поперёк, а ошибку не нашли. Вставили отладочный вывод в логи — объекты рисуются, убрали — не рисуются. Более того, прекрасно работал идентичный изначальному код:for (size_t i = 0; i < OBJECTS_COUNT && objects[i] != NULL; ++i)
{
GameObject *obj = objects[i];
obj->Draw();
}
Заглянули в дизассемблированный код изначального варианта — оказалось, компилятор тело цикла вообще выкинул из кода. Даже если перед отрисовкой поставить бессмысленноеint a = 0;
то код будет работать.
Список ресурсов для изучения Ассемблера