看板 C_and_CPP 關於我們 聯絡資訊
今天被問到的一個問題 假設在main 中有如此宣告 main() { volatile int i ; int j; i=1; i=2; j=1; j=2; } 請問兩整數變數i j 有何不同 這要如何解釋呢?? 感謝賜教 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.146.206 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1482481496.A.DE5.html
Leadgen: 在硬體中,你可能需要寫入i作控制。i=0;i=1;i=0; 12/23 18:10
Leadgen: 但在軟體最佳化,你只作了i=0;但是你加了volatile,編譯 12/23 18:11
Leadgen: 器不會對這作最佳化. 12/23 18:12
james732: 通常這樣寫就會把i直接對應到某個hardware register 12/23 20:07
james732: 以keil c的8051來說就會常用 _at_ 12/23 20:07
dijkstra: J=1可能會被compiler省略? 12/24 00:01
saxontai: 請參考這篇文章 https://goo.gl/IjGTS 12/24 02:17
OPIV: volatile variables 可以想像成不會被放到暫存器 12/25 01:28