非易失性变量

时间:2012-10-13 23:24:19

标签: c++ c volatile non-volatile

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

但是非易失性变量呢?

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

1 个答案:

答案 0 :(得分:3)

为什么函数边界很重要,如果内联(即使没有激发,即没有inline)也可以根除它们?

I.O.W。:是的,在as-if规则下几乎可以做任何事情:只要程序的行为就像编译器没有优化任何东西一样,它就可以对它做任何事情。 (并且该标准的边界也非常模糊。例如,允许编辑器的内容消除副本,并且缺少副作用。)