C基础 const volatile等

来源:互联网 发布:淘宝哪家店的檀香靠谱 编辑:程序博客网 时间:2024/06/08 10:42

volatile:

volatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。可理解为每次都从内存地址中读取数据,不从寄存器中读取。


举例:

精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
1)并行设备的硬件寄存器(如:状态寄存器)
2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)。一个例子是当一个中断服务子程序修改一个指向一个buffer的指针时。
3)多线程应用中被几个任务共享的变量

原创粉丝点击