Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我将变量标记为易失性,我会在代码中的每次访问中获得保证读取。
但是非易失变量呢?
是否保证每个函数/块至少读取一次,或者是否可以跨函数边界优化值?
为什么函数边界很重要,如果内联(即使是无缘无故的,即 no inline)无论如何都可以根除它们?
inline
IOW:是的,在 as-if 规则下几乎任何事情都是可能的:只要程序表现得好像编译器没有优化任何东西,就可以对其做任何事情。(而且该标准的边界也很模糊。例如,消除副本是允许编译器的核心内容,而缺少的副作用是该死的。)