【发布时间】:2012-10-13 23:24:19
【问题描述】:
如果我将变量标记为易失性,我会在代码中的每次访问时获得保证读取。
但是非易失变量呢?
是否保证每个函数/块至少读取一次,或者是否可以跨函数边界优化值?
【问题讨论】:
标签: c++ c volatile non-volatile
如果我将变量标记为易失性,我会在代码中的每次访问时获得保证读取。
但是非易失变量呢?
是否保证每个函数/块至少读取一次,或者是否可以跨函数边界优化值?
【问题讨论】:
标签: c++ c volatile non-volatile
如果内联(即使是无缘无故的,即没有inline)无论如何都可以根除它们,为什么函数边界很重要?
I.O.W.:是的,在 as-if 规则下几乎任何事情都是可能的:只要程序表现得好像编译器没有优化任何东西,它就可以对其做任何事情。 (而且该标准的边界也很模糊。例如,删除副本是允许编译器的核心内容,而缺少的副作用是该死的。)
【讨论】: