ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
853219 Топик полностью
0men (05.07.2018 17:36, просмотров: 429) ответил sladkoejka на Что сравнивать? В вашем примере ошибка - вы закоментили вызов __no_operation(). Без этого вызова цикл должен быть удалён. То, что с volatile не удаляет - это результат плохой оптимизации. Мозгов у компилятора не хватает чтобы отследить, что
"То, что с volatile не удаляет - это результат плохой оптимизации" Лучше бы вы стандарт почитали :) The C standard ISO 9889:1999 section 6.7.3 "Type qualifiers" paragraph 6 says: An object that has volatile-qualified type may be modified in ways unknown to the implementation or have other unknown side effects. Therefore any expression referring to such an object shall be evaluated strictly according to the rules of the abstract machine Это означает, что компилятору не нужно думать, а нужно делать то, что говорят.