volatile关键字
假如您在变量前使用volatile,则compiler不会优化
在嵌入式编程中每次碰到此变量都会去变量的物理存储空间中读取,而不是将上次读入的值直接进行代替。这样防止当变量在程序运行时因发生改变而在实际读取中没改变产生的错误。
一般这个修饰符用来告知编译器,被修饰的变量是个“易变的”变量(volatile的本意是“易变的”),防止编译器进行优化。将变量加上volatile修饰,则编译器保证对此变量的读写操作都不会被优化。
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
1361

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



