Чем полезен указатель point-to-volatile, например «volatile int *p»?

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

volatile int *p = some_addr;
int a = *p; // CPU always has to load the address, then does a memory access anyway, right?

Какая разница, если он был объявлен как int *p = some_addr?

71
задан templatetypedef 23 November 2012 в 19:49
поделиться