volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
一般说来,volatile用在如下的几个地方:
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
本文介绍了Volatile关键字的作用及应用场景,包括中断服务程序中修改的变量、多任务环境下共享的标志以及存储器映射的硬件寄存器等。通过使用Volatile可以确保变量的可见性和一致性。
1494

被折叠的 条评论
为什么被折叠?



