整数a; ...; (a == a) 失败?

2023-11-27

如果我们设置float and double键入至NaN那么它们不等于任何东西,包括他们自己.
这样的事会发生吗int?


如果将未初始化的变量与其自身进行比较,任何事情都可能发生。毕竟这是未定义的行为。对于初始化的 int 变量,这种情况不会发生。

请注意,未显式初始化的名称空间范围、类静态和函数静态 int 变量的值为 0。那么它们将不会比较相等。


我刚刚用 Clang 测试过:

int main() {
  int x;
  return (x == x);
}

当使用 -O1 编译时,返回 0,因为优化器可以假设 x 没有稳定值。

GCC 对上述内容更加宽容,返回 1。以下内容使 GCC 也返回 0(如果允许选择,显然不执行分支会更便宜):

int main() {
  int x;
  if(x == x) {
    return 1;
  }
  return 0;
}

最后,结果不仅取决于执行代码的 CPU,还取决于工具链中的其他任何内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

整数a; ...; (a == a) 失败? 的相关文章

随机推荐

  • Java继承字段[重复]

    这个问题在这里已经有答案了 我无法理解以下输出 我不知道为什么输出是 10 我认为该行A a new B 创建B类的新实例 我认为结果应该是20 class A int i 10 class B extends A int i 20 pub
  • 强制重新验证 mvc3 非侵入式远程验证

    这是一个经典的登录流程 用户可以选择 新用户 或 现有用户 如果用户是新用户 则登录框中的名称应根据服务器进行验证 以查看用户名是否唯一 如果是现有用户 则将跳过此检查 因为我们希望用户名已被使用 当然 我在视图模型上添加了一个 Remot
  • Objective-C 中的回合双打

    我有两个数字 格式如下34 123456789 如何将其更改为 34 123 我只想要小数点后 3 位数字 您可以将其打印到小数点后三位 NSString stringWithFormat 3f d 您可以将其近似舍入round d 100
  • 当元素位于视口中时jquery触发函数

    我想在 jquery localscroll 到达文档的某个点 div 时触发一个事件 假设我们从顶部 div 垂直滚动到第三个 div 当它到达那里时 就会触发该操作 jQuery 航点插件http imakewebthings gith
  • Android EPUBLIB 读取/加载内容

    我正在玩http www siegmann nl epublib在安卓上 有人可以解释一下正确的方法吗 阅读 epub HTML 内容 如何在 Android 上显示它 使用 WebView 如何将内容拆分为页面以及 如何搜索内容 Thx
  • 为什么断言只是终止为 iPhone 编译的程序?

    我正在调试一个经过大量断言 处理的 iPhone 应用程序 Xcode Objective C 和设备模拟器 在某些情况下 断言失败只会终止应用程序 而不是像我期望的那样闯入调试器 我通过实现我自己的断言来解决方法 其效果是 define
  • jshell 中 J 和 R 标志的确切含义/用途是什么?

    从帮助信息来看 J
  • Google Recaptcha v3 示例演示

    到目前为止 我一直在使用 Google Recaptcha v2 但现在我想使用最新版本 v3 更新我的 WebApp 是否有人可以为基本表单添加一个完整工作的 Google Recaptcha v3 示例 因为我找不到它的任何工作演示 我
  • 在逻辑删除后恢复 LongListSelector 中的滚动位置

    我正在尝试使用 WP7 Silverlight 工具包中的 LongListSelector 控件 这需要一些工作 但我终于让它与我的应用程序一起工作 不幸的是 我在正确处理逻辑删除过程时遇到了一些麻烦 当应用程序逻辑删除 或用户通过选择列
  • 如何在C#.NET中获得准确的下载/上传速度?

    我想使用 C NET 通过网络接口获得准确的下载 上传速度 我知道可以使用以下方法计算GetIPv4Statistics BytesReceived并使线程休眠一段时间 但它并没有给出我在浏览器中得到的输出 下面是来自 LINQPad 的一
  • 如何使用不显眼的 jQuery 验证手动重新验证/触发验证?

    我创建了自己的条件验证属性 通过继承来在客户端和服务器上验证我的 MVC 模型RequiredAttribute并实施IClientValidatable 这个想法是 如果我的模型上的布尔属性为 true 则需要另一个属性 在视图中 这表现
  • 为什么要在 Observable 函数上调用 .call() ?

    我是 Angular 的相对初学者 我正在努力理解我从 ng bootstrap 项目中阅读的一些源代码 源代码可以在这里找到 我对 ngOnInit 中的代码感到非常困惑 ngOnInit void const inputValues d
  • C 标准是否认为此标头中有一个或两个“struct uperms_entry”类型?

    您能否给出三个 C 标准 最好是 C99 或 C11 之一的章节和章节 表明以下头文件是否有一个或两个struct uperms entry类型在里面 ifndef UPERMS CACHE INCLUDE define UPERMS CA
  • Java中null是如何实现的?

    我知道 null 不是一种数据类型 But null只能分配给任何类型Object and String Example Object o null it tells that null is an object String b null
  • 如何根据内容动态调整 Twitter Bootstrap 模式的大小

    我有数据库内容 其中包含不同类型的数据 例如 Youtube 视频 Vimeo 视频 文本 Imgur 图片等 它们都有不同的高度和宽度 我在互联网上搜索时发现的只是将大小更改为仅一个参数 它必须与弹出窗口中的内容相同 这是我的 HTML
  • 如何在 Android 上检测网络是否(配置为)移动热点?

    从 Android 4 1 开始 您的设备可以检测是否已连接到移动热点 假定移动热点也运行 Android 4 1 或更高版本 此外 您还可以选择将网络标记为移动热点 在 设置 数据使用 溢出菜单 移动热点 下 但作为一个用户 我指的是开发
  • Perl 新行分隔符问题

    我有一个使用 CR LF 分隔记录的文件 但个别记录有时包含 LF while lt in gt extract record data 我正在尝试按上面的方式阅读此代码 这 正如我所期望的 会拆分仅包含 LF 的记录 然而 我希望重新分配
  • HTMLAgilityPack - 删除节点而不剥离内部文本

    我的html内容是 a href asdf asdf a h5 align left a href d570525d497 htm toc Table of Contents a br h5 我正在使用 HTML Agility Pack
  • 使用 junitPlatform 时设置系统属性

    我无法找到使用 Gradle 执行 JUnit 5 测试时如何设置系统属性 标准test任务可以配置如下 test systemProperty org slf4j simpleLogger defaultLogLevel warn 但是
  • 整数a; ...; (a == a) 失败?

    如果我们设置float and double键入至NaN那么它们不等于任何东西 包括他们自己 这样的事会发生吗int 如果将未初始化的变量与其自身进行比较 任何事情都可能发生 毕竟这是未定义的行为 对于初始化的 int 变量 这种情况不会发