對不起,如果這很簡單,我的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;
嵌入式代碼?那麼這可能是一個實際地址,正如沙爾特所懷疑的那樣。 – 2009-11-24 20:22:39
請注意我在下面的答案中添加了一篇文章鏈接:http://www.mjmwired.net/kernel/Documentation/volatile-considered-harmful.txt – Artyom 2009-11-26 11:18:47
這是一個不錯的主意,用'(void)'來避免編譯器警告。所以'(void)*(volatile uint16_t *)&someVar-> something'。當然,用宏或內聯函數包裝它,切勿將它剪切並粘貼到所有位置! – 2015-07-07 23:05:36