Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526
Доброго дня! Подскажите пожалуйста, как добиться от этого зверя корректной оптимизации? Что происходит - блок типа:
while(!(Key == OK)) { ...} полностью выбрасывается компиллятором, т.к. переменная Key модифицируется в другом модуле, а тут объявлена, как external. ОК - константа. помогает только полное отключение оптимизации. Может быть есть какая-то хитрость, чтобы обмануть хитрого оптимизатора?
Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526
Цитата(KRS @ Mar 24 2005, 14:15)
надо описать как volatile extern volatile тип K
А что, компилятор тоже без пол-литры не может понять, чего я хочу, и потому выбрасывает весь блок? Да, кстати, действительно, объявление volatile решило проблему.