2

ブート ローダー コードで、物理アドレスにアクセスするときに volatile キーワードを使用していることがわかりました。物理メモリアドレスにアクセスしている場合でも volatile キーワードを使用する必要がありますか?

4

3 に答える 3

1

これは、コンパイラの最適化を無効にし、現在の値のみをフェッチするためです。現在の値のみの意味は、同じオブジェクトの値が前の命令で使用されている場合でも、システムが現在の値をフェッチすることです。

于 2013-07-08T11:03:30.080 に答える
0

この物理アドレスの内容をコンパイラが認識せずに変更できる手段はありますか (コンパイラがローカル コードのみを検査している場合)。そうである場合は、volatile キーワードを使用する必要があります。そうしないと、コンパイラが実際にメモリを読み取るかどうかを確認できません。

デバイス レジスタなどの物理アドレスの場合、volatile キーワードを使用する必要があります。

于 2013-07-08T10:57:29.333 に答える