C++ 中 volatile 关键字有什么用?


这里我们来了解一下 C++ 中 volatile 限定符的含义。我们声明变量时即可应用 volatile 限定符。它用于告诉编译器,该值可能会随时更改。下面是 volatile 的一些特性。

  • volatile 关键字不能删除内存赋值。
  • 它不能在寄存器中缓存变量。
  • 值不能按赋值顺序更改。

让我们看看如何使用 volatile 关键字。

volatile int a;
int volatile a;

这两个声明是正确的。与其他数据类型一样,我们可以使用 volatile 指针、结构、联合等。volatile 结构和联合本身可以是 volatile 的,它们的成员变量也可以是 volatile 类型。

volatile 用于不同的位置。对于内存映射的外围寄存器、一些由其他函数或中断服务例程访问的全局变量,或者在一些多线程应用程序中,可以使用 volatile。

示例

int main (){
   int value;
   value++;
}
int main (){
   volatile int value;
   value++;
}

有两块代码。在第一块代码中没有 volatile 关键字。因此对于第一种情况,该变量将从内存复制到 CPU 寄存器,然后执行操作。在第二种情况下,有 volatile 关键字。因此,在这种情况下该变量不会从内存复制到寄存器。

更新日期:2020 年 9 月 1 日

11000+ 次查看

开启您的 职业生涯

完成课程后获得认证

立即开始
广告