如果我将变量标记为 volatile ,则代码中的每次访问都可以保证读取。
但是非 volatile 变量呢?
是否保证每个函数/ block 至少读取一次,或者可以跨函数边界优化该值吗?
最佳答案
如果内联(即使是无缘无故的,即没有内联
)无论如何都可以消除它们,为什么函数边界很重要?
I.O.W.:是的,在“假设”规则下几乎任何事情都是可能的:只要程序的行为就像编译器没有优化任何东西,就允许对其执行任何操作。 (该标准的边界也相当模糊。例如,消除拷贝是编译器的核心内容,而缺少副作用是该死的。)
关于c++ - 非 volatile 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12877907/