为什么我们在C ++中使用易失性限定符?

volatile意味着两件事-

  • 变量的值可能会更改,而您没有任何代码对其进行更改。因此,无论何时编译器读取该变量的值,都可能不会假定该变量与上次读取的变量相同,或假定它与存储的最后一个值相同,但必须再次读取。

  • 从易失性变量存储值的行为是一种“副作用”,可以从外部观察到,因此不允许编译器删除存储值的行为。例如,如果两个值连续存储,那么编译器实际上必须将该值存储两次。

举个例子:

i = 2;
i = i;

编译器必须存储第二个数字,读取变量I,并将其读取的变量存储到i中。

您可以在此处找到有关volatile关键字的更多详细信息:www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/