申し訳ありませんこれは単純ですが、私のC++は錆びています。ちょっと変わったC++コード
これは何をしていますか?私が見る限り、代入や関数呼び出しはありません。このコードパターンは、継承したいくつかのコードで何度も繰り返されます。それが重要であれば、それは埋め込まれたコードです。
*(volatile UINT16 *)&someVar->something;
編集:そこから続き、次のコードでヒースズの疑惑を確認していますか? (正確にコードから、繰り返しを含め、名前が無実を保護するために変更されている以外)
if (!WaitForNotBusy(50))
return ERROR_CODE_X;
*(volatile UINT16 *)& someVar->something;
if (!WaitForNotBusy(50))
return ERROR_CODE_X;
*(volatile UINT16 *)& someVar->something;
x = SomeData;
埋め込みコード?次に、疑問に思ったように、これはおそらく物理的なアドレスです。 –
注:私は以下の答えで記事へのリンクを追加しました:http://www.mjmwired.net/kernel/Documentation/volatile-considered-harmful.txt – Artyom
読んだ結果をどこにもキャストすることをお勧めしますコンパイラの警告を避けるために、 '(void)'を使用してください。だから '(void)*(volatile uint16_t *)&someVar-> something'です。もちろん、これをマクロまたはインライン関数でラップして、カットアンドペーストしないでください! –