ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
7 ноября
853237 Топик полностью
sladkoejka (05.07.2018 18:09 - 18:13, просмотров: 449) ответил 0men на "То, что с volatile не удаляет - это результат плохой оптимизации"
Прочитайте вашу цитату из стандарта внимательнее. В ней речь идёт об "объекте, который может быть модифицирован". В случае-же с локальной переменной volatile, никто её модифицировать не может, время её жизни ограничено временем выполнения функции. Если функция ничего не делает, что может изменить наблюдаемое поведение, то она может быть запросто удалена вместе со всеми локальными volatile. Такое удаление полностью соответствует стандарту. Это частая ошибка, на которую многие попадаются, считая что volatile даёт гарантию что код не будет удалён. На самом деле по стандарту код нельзя удалять только если volatile помечены данные, доступные для другого кода.