volatile
关键字是在 C/C++ 中使用的,它修饰的变量表示其值可能随时变化,也就是说,它可能被其他线程或进程更改,因此编译器在对其进行优化时就不能对其进行缓存。这可以用来修饰变量,以便确保程序每次访问该变量时都会直接从内存中读取。
由于它的这种特性,volatile
关键字通常用于对内存映射的 I/O 寄存器进行修饰,以确保程序每次访问该寄存器时都会直接从内存中读取。
例如:
volatile int *ptr;
这表示 ptr
指针指向的内存地址可能会被其他线程或进程修改,因此编译器在对其进行优化时就不能对其进行缓存。