LINUX.ORG.RU

История изменений

Исправление Dark_SavanT, (текущая версия) :

оптимизации не могут нарушать логику программы.

Могут.

uint32_t* addr = 0x20000008;
*addr = 0x11223344;
*addr = 0x11223344;
*addr = 0x11223344;
*addr = 0x11223344;
*addr = 0x11223344;

И компилятор, если ему не сказать явно volatile, сломает логику программы, по твоему утверждению.

Попустись.

Исходная версия Dark_SavanT, :

оптимизации не могут нарушать логику программы.

Могут.

uint32_t* addr = 0x20000008;
*addr = 0x1122334455;
*addr = 0x1122334455;
*addr = 0x1122334455;
*addr = 0x1122334455;
*addr = 0x1122334455;

И компилятор, если ему не сказать явно volatile, сломает логику программы, по твоему утверждению.

Попустись.