const volatile, inscrivez-volatile, statique volatile en C++

Je me pose des questions sur les différentes utilisations de la volatils mot-clé en combinaison avec registre, const et statique mots-clés. Je ne suis pas sûr de ce que sont les effets, donc je pense que:

register volatile int T=10;

Suggèrent que le compilateur magasin de T dans un registre et la valeur de T peut être modifié à partir de quelque part à l'extérieur (système d'exploitation, du matériel, un autre thread)

const volatile int T=10;

Le programme lui-même ne peut pas modifier T, mais peut être modifié frow quelque part en dehors du code.

static volatile int T=10;

Si T est un membre de données d'une classe, cela signifie que tous les objets de la classe ont la même valeur pour T et T peut être modifié à partir de quelque part à l'extérieur. Si T est une variable globale dans un fichier, le code source dans d'autres fichiers (qui sont partie intégrante du projet) ne peut pas accéder T, mais peut être consulté à partir de quelque part à l'extérieur. Si T est une variable locale dans une fonction,une fois qu'il a été initialisé reste en mémoire jusqu'à la fin du programme et peut être modifié à partir de quelque part à l'extérieur.

Sont mes pensées correctes et qu'elles peuvent tout expérimenté, développeur C++, donner un exemple où le ci-dessus peut être utilisé dans des applications du monde réel ou c'est très rare?

  • Très sympa! +1. Pourrait même inclure mutable.