编译器可能不会跨序列点移动对volatile变量的访问; 这是什么意思?

Who*_*ami 6 c compiler-construction volatile sequence-points

将变量声明为"volatile"意味着直接从内存位置读取/写入,而不是从寄存器变量读取/写入.我对'序列点'有所了解.但我不明白标题中提到的陈述.

有人可以解释一下,并给出一些代码片段吗?

小智 0

易失性意味着您的变量可能会在程序外部修改,并且编译器无法通过将其移动到程序的表达式序列(指令)中来优化其访问。易失性使用的一个很好的例子是操作系统滴答声。易失性是优化器的一个提示,表明我们不希望他更改其访问权限:在操作系统标记的示例中,我们不希望比其编码位置更晚或更早读取它。