volatile意味着两件事-
-变量的值可能会更改,而您的任何代码都不会更改它。因此,无论何时编译器读取该变量的值,都可能不会假定该变量与上次读取的变量相同,或假定它与存储的最后一个值相同,但必须再次读取。
-将值存储到易失性变量的行为是“副作用”,可以从外部观察到,因此不允许编译器删除存储值的行为;例如,如果两个值连续存储,那么编译器实际上必须将该值存储两次。
作为一个例子-
i = 2; i = i;
编译器必须存储第二个数字,读取变量i,并将其读取的变量存储到i中。
您可以在此处找到有关volatile关键字的更多详细信息-https: //www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/