Tag: 非易失性

非易失性数据的易失性指针

假设我有以下声明: int* volatile x; 我相信这定义了一个易失性指针“正常”变量。 对我来说,这可能意味着两件事之一: 首先猜猜 指针可以更改,但数字不会更改,恕不另行通知。 这意味着一些其他线程(编译器不知道)可以更改指针,但如果旧指针指向“12”则新指针(指针的新值,因为线程更改它) )会指向另一个“12”。 对我来说这似乎没用,我认为这不是真正的操作。 第二个猜猜 指针可以更改,因此如果指针发生更改,编译器必须在使用之前重新加载指针中的值。 但是如果它确认指针没有改变(带有附加检查),那么它可以假设它指向的值也保持不变。 所以我的问题是: 声明指向非易失性数据的易失性指针实际上做了什么?