[問題] share memory 與 volatile
想請問一下
在C裡面volatile是說,compiler有可能會將變數暫存在register當中
所以使用volatile是讓他強制寫入與讀取,不會有暫存的最佳化行為
那麼在share memory當中是不是所有share的變數都要設成volatile?
還是有什麼方式可以判斷是否該加volatile?
我的狀況是在process A有一個二維陣列的值需要由process B計算之後填入的
如此我share memory中的二位陣列 int arr[m][n]
是否應該宣告成 volatile int arr[m][n]?
主要還是想問關於如何判斷是否該加volatile
我心裡認為share memory中的structure內變數都應該要加
但是又覺得怪怪的
還是我應該一開始宣告就把整個struct宣告成volatile
而不是struct內部變數宣告成volatile?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.208.64
※ 編輯: clop 來自: 140.113.208.64 (03/31 05:10)
推
03/31 11:07, , 1F
03/31 11:07, 1F
→
03/31 11:07, , 2F
03/31 11:07, 2F
→
03/31 11:07, , 3F
03/31 11:07, 3F
→
03/31 11:10, , 4F
03/31 11:10, 4F
→
03/31 11:11, , 5F
03/31 11:11, 5F
→
03/31 11:13, , 6F
03/31 11:13, 6F
→
03/31 11:13, , 7F
03/31 11:13, 7F
→
03/31 11:14, , 8F
03/31 11:14, 8F
→
03/31 11:14, , 9F
03/31 11:14, 9F