G>>как понимать const volatile и зачем оно такое нужно? ПК>volatile означает, что объект может изменяться как-то помимо действий программы, const — объект действиями программы через данный идентификатор не изменяется. const volatile — объект изменяется только "внешними" по отношению к программе способами. Например, данные какого-то внешнего устройства, отображенные на оперативную память. А также, и это наиболее важное применение: что объект может поменяться за пределами "прямой видимости": — в другом потоке — в какой-либо функции Особенно это существенно для указателей и ссылок: могут одновременно существовать несколько разных способов доступиться до одного и того же предмета. const — накладывает ограничение на модификацию "предмета" через данный идентификатор/ссылку/указатель, volatile — сообщает компилятору, что нельзя кэшировать значение "предмета", т.к. он может неявно измениться в любой момент. |