Рассмотрим следующий фрагмент кода:
unsigned global;
while(global);
global
изменяется в функции, которая вызывается IRQ. Однако g++ удаляет тест «не ноль» и переводит цикл while в бесконечный цикл.
Отключение оптимизации компилятора решает проблему, но предлагает ли C++ для этого языковую конструкцию?
volatile
. - person Gunther Piez   schedule 29.02.2012