作者caxz ( )
看板C_and_CPP
標題[問題] volatile 用法
時間Fri Dec 23 16:24:54 2016
今天被問到的一個問題
假設在main 中有如此宣告
main()
{
volatile int i ;
int j;
i=1;
i=2;
j=1;
j=2;
}
請問兩整數變數i j 有何不同
這要如何解釋呢??
感謝賜教
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.146.206
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1482481496.A.DE5.html
1F:推 Leadgen: 在硬體中,你可能需要寫入i作控制。i=0;i=1;i=0; 12/23 18:10
2F:→ Leadgen: 但在軟體最佳化,你只作了i=0;但是你加了volatile,編譯 12/23 18:11
3F:→ Leadgen: 器不會對這作最佳化. 12/23 18:12
4F:→ james732: 通常這樣寫就會把i直接對應到某個hardware register 12/23 20:07
5F:→ james732: 以keil c的8051來說就會常用 _at_ 12/23 20:07
6F:推 dijkstra: J=1可能會被compiler省略? 12/24 00:01
8F:推 OPIV: volatile variables 可以想像成不會被放到暫存器 12/25 01:28