Как запретить g ++ оптимизировать цикл, управляемый переменной, которая может быть изменена с помощью IRQ?

Рассмотрим следующий фрагмент кода:

unsigned global;
while(global);

global модифицируется в функции, которая вызывается IRQ. Однако g ++ удаляет тест «не равно нулю» и переводит цикл while в бесконечный цикл.

Отключение оптимизации компилятора решает проблему, но предлагает ли C ++ языковую конструкцию для этого?

22
задан Ciro Santilli 新疆改造中心法轮功六四事件 26 June 2015 в 07:48
поделиться