-
- Нет, не так. Может переставлять, ему разрешено (если volatile там нет). Лень копаться в дизассемблере, чтобы пример привести. Вот тебе с просторов тырнета --> - SciFi(18.03.2016 11:23 - 11:27, ссылка)
- Угу, интересно. Только нужно здраво обозначить угрозу и простые способы решения. Флаги обновления обычно ставятся в прерываниях, в основном цикле будет пофиг, в какой последовательности что ставилось. Volatile нужен, чтобы вообще флаг прочитался. VL(185 знак., 18.03.2016 12:44,
)
- Я уже утомился тебе что-либо доказывать. Доказывай сам :-) - SciFi(18.03.2016 12:49)
- Повторюсь, но и при наличии volatile операции в функции могут быть переставлены если результат на выходе функции такой же получается. - fk0(18.03.2016 11:24)
- Это уже сектантство какое-то. Откуда дровишки? Как компилятор может знать, что "результат такой же"? Может быть, чьи-то шаловливые ручки накрутили зависимостей снаружи неочевидным образом? - SciFi(18.03.2016 11:29)
- Ссылку я тебе уже давал. Не знаю какой стандарт об этом говорит, но синхронизация обращений к памяти производится далеко не всегда, а только при вызове функций и ещё когда-то. В теле функции синхронизации никто не обещает. Далее, стандарт C fk0(497 знак., 18.03.2016 13:04, ссылка)
- Ты рассказываешь про sequence points штоле? Коли так, имей в виду, они не только на входе в функцию, но и ещё в 100500 местах: SciFi(1103 знак., 18.03.2016 13:28)
- Ссылку я тебе уже давал. Не знаю какой стандарт об этом говорит, но синхронизация обращений к памяти производится далеко не всегда, а только при вызове функций и ещё когда-то. В теле функции синхронизации никто не обещает. Далее, стандарт C fk0(497 знак., 18.03.2016 13:04, ссылка)
- Это уже сектантство какое-то. Откуда дровишки? Как компилятор может знать, что "результат такой же"? Может быть, чьи-то шаловливые ручки накрутили зависимостей снаружи неочевидным образом? - SciFi(18.03.2016 11:29)
- Угу, интересно. Только нужно здраво обозначить угрозу и простые способы решения. Флаги обновления обычно ставятся в прерываниях, в основном цикле будет пофиг, в какой последовательности что ставилось. Volatile нужен, чтобы вообще флаг прочитался. VL(185 знак., 18.03.2016 12:44,
- Нет, не так. Может переставлять, ему разрешено (если volatile там нет). Лень копаться в дизассемблере, чтобы пример привести. Вот тебе с просторов тырнета --> - SciFi(18.03.2016 11:23 - 11:27, ссылка)