作者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/cn.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