ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
661088 Топик полностью
fk0, легенда (18.03.2016 13:04, просмотров: 118) ответил SciFi на Это уже сектантство какое-то. Откуда дровишки? Как компилятор может знать, что "результат такой же"? Может быть, чьи-то шаловливые ручки накрутили зависимостей снаружи неочевидным образом?
Ссылку я тебе уже давал. Не знаю какой стандарт об этом говорит, но синхронизация обращений к памяти производится далеко не всегда, а только при вызове функций и ещё когда-то. В теле функции синхронизации никто не обещает. Далее, стандарт C https://en.wikipedia.org/wiki/Memory_ordering
определяет порядок вычислений, но он не определяет что потом с этим порядком будет делать оптимизатор компилятора или даже сам процессор (в котором может найтись JIT компилятор в нативный код). И практически сейчас GCC операции присваивания очень даже переставляет как ему удобнее (результат на выходе функции тот же). Синхронизация всех записей (после точки синхронизации всё записано, как и ожидалось в программе) делается, повторюсь, только на выходе, при вызове другой функции, явным образом.
[ZX]