对于程序中存在多个执行流程访问同一全局变量的情况,volatile 限定符是必要的,此外,虽然程
volatile需要限定:
变量的内存单元中的数据不需要写操作就可以自己发生变化,每次读上来的值都可能不一样
即使多次向变量的内存单元中写数据,只写不读,也并不是在做无用功,而是有特殊意义的
什么样的内存单元会具有这样的特性呢?肯定不是普通的内存,而是映射到内存地址空间的硬件寄
存器,例如串口的接收寄存器属于上述第一种情况,而发送寄存器属于上述第二种情况。
sig_atomic_t 类型的变量应该总是加上volatile 限定符,因为要使用sig_atomic_t 类型的理由也正
是要加volatile 限定符的理由。
volatile需要限定:
变量的内存单元中的数据不需要写操作就可以自己发生变化,每次读上来的值都可能不一样
即使多次向变量的内存单元中写数据,只写不读,也并不是在做无用功,而是有特殊意义的
什么样的内存单元会具有这样的特性呢?肯定不是普通的内存,而是映射到内存地址空间的硬件寄
存器,例如串口的接收寄存器属于上述第一种情况,而发送寄存器属于上述第二种情况。
sig_atomic_t 类型的变量应该总是加上volatile 限定符,因为要使用sig_atomic_t 类型的理由也正
是要加volatile 限定符的理由。