【发布时间】:2017-11-02 15:29:19
【问题描述】:
当所有类型的编译器优化都被关闭时,我们是否需要使用 volatile 限定符,假设在我们启用编译器优化时需要它。
我阅读了 SO Volatile and compiler optimization 上的帖子,上面说是,但没有给出任何需要的特定用例。
无论启用或禁用任何类型的优化,有人可以指出仍然需要使用它们的情况。
【问题讨论】:
-
C++ 标准没有规定“编译器优化”。
-
那么 C 还是 C++? C 和 C++ 是不同的语言,如果你想要一个好的答案,你应该只用一种来标记。最好也标记您想要答案的 C/C++ 版本。也就是说,正如@manni66 所提到的,该标准并未指定此类行为。
-
一个这样的用例是当您使用指向内存映射地址的指针时。
-
volatile指定程序必须如何访问表示的值,它与优化相切 -
This SO article 可能很有趣
标签: c++ c compiler-optimization volatile