反汇编中演示 volatile 的示例 C 代码?

2024-04-15

演示反汇编中易失性和非易失性之间差异的简短说明性 C 程序是什么?

ie

int main()
{
    volatile int x;

    ???
}

vs

int main()
{
    int x;

    ???
}

我们可以用什么来代替两者???这样生成的代码就不同了?


例如:

x = 0;

If x is not volatile,编译器会发现它没有被使用,并且可能会消除它(或者是x = 0;语句甚至变量本身)完全来自生成的代码作为优化。

但是,那volatile关键字是正是为了防止编译器这样做。它基本上告诉代码生成器“无论你认为这个变量是什么/做什么,不要再猜我,我需要它。”因此,编译器会将易失性变量视为已访问,并将发出与表达式相对应的实际代码。

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

反汇编中演示 volatile 的示例 C 代码? 的相关文章

随机推荐

  • 如何跟踪同一函数的多次运行?

    我有一个这样的函数 function run arg if window alreadyRun init window alreadyRun true more code 你明白了 我想弄清楚这是否是第一次调用函数 有一个更好的方法吗 不使
  • QT画一个圆[重复]

    这个问题在这里已经有答案了 我正在学习 QT 有一个简单的问题 画一个半径为 r 中心点为 x y 的圆的最佳方法是什么 Thanks In a paintEvent用这个 http doc qt io qt 4 8 qpainter ht
  • 如何防止mysql重置自动增量值?

    我有一个表来制作临时 id s 当我删除表中的所有行时 该表的自动增量值将重置为 0 但我不想重置自动增量 我能做些什么 Compare 截断表 http dev mysql com doc refman 5 5 en truncate t
  • spring-integration并行分割路由聚合流由于单向MessageHandler而失败

    我想通过拆分项目 将每个项目路由到适当的网关并聚合结果来并行处理项目列表 但是 我的应用程序无法启动 出现以下错误 BeanCreationException The currentComponent is a one way Messag
  • 将正文添加到与 azure 服务 mgmt api 一起使用的 HttpWebRequest

    我将如何添加到 HttpWebRequest 的正文 身体需要由以下部分组成
  • Javascript 单击打开和关闭菜单,不使用 jquery

    我想要一个菜单 可以单击打开 然后单击关闭 与悬停菜单类似 但需要单击 打开和单击关闭 我有三个可见的列表项 下面有子菜单 这些是用 css display none 隐藏的 我可以让它们显示 使用关键字 this 以及一个用于检查是否有
  • 如何检查 Perl 中打开(文件)是否成功?

    下面的代码 不太像 Perl 风格 usr bin perl if e mydir print directory doesn t exist n open my fh gt mydir file txt if fh print file
  • 设置 npm 注册表 URL 的用户名和密码

    我正在尝试使用 npm 从 url 安装软件包 http 主机 80 http host 80 我做了以下事情 npm 配置设置 strict ssl false npm 配置设置注册表 npm 代理http 主机 端口 http host
  • JavaScript - 控制 document.write 的插入点

    我想创建一个运行第三方脚本的页面 其中包括document write当 DOM 已经完全加载之后 我的页面不是 XHTML 我的问题是 document write 正在覆盖我自己的页面 这就是 DOM 加载后它所做的事情 我尝试重写 d
  • 使用谷歌地图 API iOS 进行反向地理编码

    我正在使用以下代码进行反向地理编码 void locationManager CLLocationManager manager didUpdateToLocation CLLocation newLocation fromLocation
  • Facebook API 人物搜索按国家/地区过滤

    我正在尝试使用 Facebook API Graph API 或 FQL 以有效者为准 搜索人员 到目前为止 它工作得很好 但我无法按国家或语言对其进行过滤 我目前正在检索此网址 https graph facebook com searc
  • 无法分配给变量,因为它是借用的

    我试图在循环中重新分配变量 但我不断遇到cannot assign to cur node because it is borrowed 下面为了简单起见我注释掉了循环 这是同样的问题 我该如何处理这个问题 fn naive largest
  • Java 未知格式转换异常

    下面的代码引发了这个错误 我不知道为什么 将 String format 输出到str变量 但我不知道它出了什么问题 Exception in thread main java util UnknownFormatConversionExc
  • Android 中的屏幕截图

    我想开发一个应用程序来截取 android 屏幕的屏幕截图 有人知道怎么做吗 这类似于 koushik duttas 屏幕截图 但是没有使用 root 并且有人有 koushik dutta 屏幕截图应用程序正在运行 不适合我 请让我知道
  • Kubernetes Dashboard 在整个网站上都是“被禁止的”

    我在 Kubernetes 的仪表板网站上到处都看到 被禁止 见图 重现 通过站点而不是从 shell 创建 Google Kubernetes 集群 选择 Kubernetes 版本 1 8 6 通过连接按钮打开外壳 gcloud con
  • Autobahn websockets Android 演示崩溃

    我是 websockets 的新手 我一直在使用 Autobahn websocket 来制作一个更大的项目 它在 python 和 js 版本中工作得很好 但我在 Android API 上遇到了麻烦 我正在遵循中的教程http www
  • 取消任务关闭窗口。如何检测任务是否同步返回?

    我遵循一种相当常见的模式 使用异步对话框方法确认 取消主窗口关闭 但是 在我调用来呈现对话框的异步任务中 在某些情况下我会立即返回布尔值 而不是等待对话框任务方法的返回 在这些情况下会抛出异常 System InvalidOperation
  • WPF/XAML:如何使 TextBlock 中的所有文本大写?

    我希望 TextBlock 中的所有字符都以大写形式显示
  • 无法使用 iframe 标签在 WebView 中播放视频?

    我正在使用以下数据来显示WebView 这些是 HTML 标签以及 指的是视频的 iframe 现在的问题是 当我点击它时 它显示播放按钮 但无法播放视频 我可以在里面播放这个视频吗WebView or not lt p gt lt p g
  • 反汇编中演示 volatile 的示例 C 代码?

    演示反汇编中易失性和非易失性之间差异的简短说明性 C 程序是什么 ie int main volatile int x vs int main int x 我们可以用什么来代替两者 这样生成的代码就不同了 例如 x 0 If x is no