Pourquoi est-ce un point-à-volatile pointeur, comme “volatile int * p”, est-il utile?

volatile est-à-dire au compilateur de ne pas optimiser la référence, de sorte que chaque lecture/écriture n'utilise pas la valeur stockée dans le registre mais un réel accès à la mémoire. Je peux comprendre que c'est utile pour certaines ordinaire variable, mais ne comprends pas comment volatile affecte un pointeur.

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

Quelle est la différence, si elle a été déclarée comme int *p = some_addr?

InformationsquelleAutor Infinite | 2012-03-29