說我在這樣的循環檢查的變量。用這種用法揮發很好嗎?
while(var)
;
這裏,VAR必須聲明volatile
如果程序是多線程和VAR被多個線程訪問。這是一個已知的事實。但是,讓我們說,我們有這樣的東西。
while(var + 1)
;
請問這仍然適用於volatile
?我的意思是有可能,編譯器緩存(VAR + 1)價值?換句話說,我問,如果我們需要像下面的代碼這一點,與臨時是一個也volatile
變量,以確保沒有緩存由編譯器完成。
while(temp)
temp = var + 1;