C语言关键字volatile表明某个变量的值可能随时被外部改变(如外设端口寄存器值),因此对这些变量的存取不能缓存到寄存器,每次使用时需要重新读取,因此经常用于外设接口的编程中。该关键字在多线程环境下经常使用,因为在编写多线程的程序时,同一个变量可能被多个线程修改,而程序通过该变量同步各个线程。对于编译器来说,它不知道这个值会被其他线程修改,自然就把它缓存到寄存器里面。
volatile的作用
最新推荐文章于 2024-06-07 22:56:59 发布
C语言关键字volatile表明某个变量的值可能随时被外部改变(如外设端口寄存器值),因此对这些变量的存取不能缓存到寄存器,每次使用时需要重新读取,因此经常用于外设接口的编程中。该关键字在多线程环境下经常使用,因为在编写多线程的程序时,同一个变量可能被多个线程修改,而程序通过该变量同步各个线程。对于编译器来说,它不知道这个值会被其他线程修改,自然就把它缓存到寄存器里面。