码迷,mamicode.com
首页 > 其他好文 > 详细

volatile 的使用

时间:2021-04-23 11:48:41      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:bsp   ola   initial   ati   style   rgba   告诉   rgb   gpio   

① 编译器很聪明,会帮我们做些优化,比如:

int a;
a = 0; // 这句话可以优化掉,不影响 a 的结果
a = 1; 

② 有时候编译器会自作聪明,比如:

int *p = ioremap(xxxx, 4); // GPIO 寄存器的地址
*p = 0; // 点灯,但是这句话被优化掉了
*p = 1; // 灭灯 

③ 对于上面的情况,为了避免编译器自动优化,需要加上 volatile,告诉它“这是容易出错的,别乱优化”:

volatile int *p = ioremap(xxxx, 4); // GPIO 寄存器的地址
*p = 0; // 点灯,这句话不会被优化掉
*p = 1; // 灭灯

 

 

volatile 的使用

标签:bsp   ola   initial   ati   style   rgba   告诉   rgb   gpio   

原文地址:https://www.cnblogs.com/520dada/p/14688778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!