※ 引述《windows2k (程式宅 <囧>)》之銘言:
→ windows2k: 我的問題是如果可能被最佳化掉, 那為什麼大家都這麼做 09/13 07:29
→ windows2k: 還是大家約定俗成完全無視? 09/13 07:29
我的看法是:
1. 會被最佳化的情況很少見. 一般情況下, 你不會產生不能被最佳化的情況.
像網頁提的那種例子, 正常意識到自己在幹嘛的人都會用 volatile 宣告變數
如果變數本身是 volatile, 當然用 memset 有它的風險. 知道風險還去做. 那怪不得別人.
2. 真的要做的話, 寫 memset 的 volatile 版本我相信在一般的編譯器不會有甚麼問題.
像網頁說的那個問題還是著重在對標準的 volatile 行為該怎麼解釋.
我相信宣告變數本身為 volatile 又使用 memset 的 volatile 版本時, 應該不會有甚麼其他問題. (自以為)
3. 如果你真的真的很 care, 那就使用 memset_s 吧, 至少編譯器要保證它是可以用的 XD