Какие правила компилятор должен соблюдать при работе с ячейками энергозависимой памяти?

Я знаю, что при чтении из области памяти, которая записывается несколькими потоками или процессами, ключевое слово volatile должно использоваться для этого места, как в некоторых случаях ниже, но я хочу узнать больше о том, какие ограничения действуют это действительно сделано для компилятора и, в основном, какие правила компилятор должен соблюдать при работе с таким случаем, и есть ли какой-либо исключительный случай, когда, несмотря на одновременный доступ к области памяти, ключевое слово volatile может игнорироваться программистом.

volatile SomeType * ptr = someAddress;
void someFunc(volatile const SomeType & input){
 //function body
}
12
задан Pooria 9 November 2010 в 18:01
поделиться