2

如果我将变量标记为易失性,我会在代码中的每次访问中获得保证读取。

但是非易失变量呢?

是否保证每个函数/块至少读取一次,或者是否可以跨函数边界优化值?

4

1 回答 1

3

为什么函数边界很重要,如果内联(即使是无缘无故的,即 no inline)无论如何都可以根除它们?

IOW:是的,在 as-if 规则下几乎任何事情都是可能的:只要程序表现得好像编译器没有优化任何东西,就可以对其做任何事情。(而且该标准的边界也很模糊。例如,消除副本是允许编译器的核心内容,而缺少的副作用是该死的。)

于 2012-10-13T23:25:53.197 回答