register、const、およびstaticキーワードと組み合わせたvolatileキーワードのさまざまな使用法について疑問に思っています。どのような影響があるかはわからないので、次のように考えています。
register volatile int T=10;
コンパイラーに T をレジスターに格納することを提案し、T の値を外部のどこか (OS、ハードウェア、別のスレッド) から変更できるようにします。
const volatile int T=10;
プログラム自体は T を変更できませんが、T はコードの外側のどこかから変更できます。
static volatile int T=10;
T がクラスのデータ メンバーである場合、クラスのすべてのオブジェクトが T に対して同じ値を持ち、T を外部のどこかから変更できることを意味します。T がファイル内のグローバル変数である場合、(プロジェクトの一部である) 他のファイル内のソース コードは T にアクセスできませんが、外部のどこかから T にアクセスできます。T が関数内のローカル変数の場合、一度初期化されると、プログラムが終了するまでメモリに残り、外部のどこかから変更できます。
私の考えは正しいですか?経験豊富な C++ 開発者は、上記が実際のアプリケーションで使用される可能性がある、または非常にまれな例を挙げてもらえますか?