0
点赞
收藏
分享

微信扫一扫

【嵌入式C语言】volatile关键字讲解

残北 2022-03-12 阅读 71

当我们需要读取一个变量的值时,编译器为了加快访问速度,一般会在缓存中读取该变量的值,而不会直接去寄存器中去取值。我们在嵌入式开发时,经常要和各种开发板打交道,有时候寄存器的值并不是通过代码去修改的,而是某个芯片的外设修改的。也就是说,在嵌入式开发中,我们即使不通过程序修改寄存器的状态,寄存器的值可能也是变化的。加入我们在访问这种变量的时候不加volatile关键字,编译器默认会在缓存中取该变量的值,而这个值可能是一个旧值,该变量的真实值已经被外设等修改掉了,这就会出现问题,我们拿到的值并不是变量的最新值。加volatile关键字就是告诉编译器,不要进行优化,每次都去该变量的地址处去访问该值,这就保证了每次取到的都是变量的最新值

举报

相关推荐

0 条评论