当前位置: 首页 > 知识库问答 >
问题:

允许对易失性对象进行优化

李言
2023-03-14

来自ISO/IEC 9899:201x第5.1.2.3节程序执行第4段:

关于volatile对象,这里允许的优化是什么?有人能给出一个可以优化掉的易失性访问的例子吗?

由于Volatile访问是一种可观察的行为(在第6段中描述),似乎没有任何优化可以针对Volatile进行,所以,我很想知道第4节中允许的优化是什么。

共有1个答案

颛孙信厚
2023-03-14

有人能给出一个可以优化掉的易失性访问的例子吗?

我认为你曲解了案文,这一段的意思是

volatile unsigned int bla = whatever();

if (bla < 0) // the code is not evaluated even if a volatile is involved
 类似资料:
  • 来自C/C++,我对Java中的volatile对象行为有点困惑。 null faik,volatile意味着b引用的“book对象”应该在主内存中。编译器可能在内部实现引用作为指针,因此b指针可能位于缓存中。我的理解是,volatile是对象的限定符,而不是引用/指针的限定符。 问题是:在使用方法中,本地引用不是易失性的。这个“本地”引用会不会把底层的Book对象从主存带到缓存中,实质上使对象不

  • C11 6.7.3类型限定符,第7段规定: 这里,指针的类型为,但我关心的是当实际指向的对象是非易失性的时会发生什么,特别是编译器是否可以将从对的单个访问转换为以下形式的两个访问: 这显然会使代码不正确。因此,目标是确定是否所有这样的指向对象实际上都需要。

  • 问题内容: 我有一个类Library,它包含一个Book对象数组,我需要根据Book的Title或PageNumber属性对数组进行排序。我不允许问题与Book一起使用Comparable类。您如何建议我对图书馆中的书籍进行排序?写我自己的排序?还是有更简单的方法?如果您需要代码片段,请问! 问题答案: 您可以提供一个用于比较您希望的任何类型的对象,否则。 对于数组和集合,请使用 甚至像TreeS

  • 问题内容: 此函数在SQL数据库中插入一行,并需要返回创建的标识号: 它成功插入了该行,但是我收到错误消息“ 3704,当对象关闭时,不允许进行操作。” 当它尝试返回记录集中的标识号时。当我直接在服务器上执行此sql查询时,它可以工作。有人能帮忙吗? 问题答案: 我做同样的事情(无论如何都很相似)。我相信会有两套结果返回,一套用于INSERT,另一套用于SELECT。尝试调用objRecordSe

  • 这行代码: 未能通过W3C HTML5验证程序检查:

  • 问题内容: 我们如何能够通过只允许火力地堡云功能将数据写入到特定位置的规则安全数据库,以前有以UID添加到管理客户机的选择和使用规则节UID,但现在我们通过初始化,所以我不确定如何添加其他参数。 编辑 是为此发起证书的好主意吗?即 上面有什么好处,实际上是从哪里获取数据,这不只是节点模块吗? 问题答案: 通常,在Cloud Functions代码的顶部,您具有: 作为节点模块的一部分,您可以访问,