1.volatile:变量如果加了 volatile 修饰,则不管修改多少次,每次调用改的时候都会从内存重新装载内容,而不是直接从寄存器拷贝内容。 2.运用情况: 在多任务、中断、甚至setjmp环境下,变量可能被其他的程序改变,编译器自己无法知道,volatile就是告诉编译器这种情况要从内存中读取volatile的值。
- 中断服务程序中修改的供其它程序检测的变量需要加volatile;
- 多任务环境下各任务间共享的标志应该加volatile;
- 存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;