迅维网

查看: 1512|回复: 0
打印 上一主题 下一主题

c语言中 volatile _Bool 关键字说明

[复制链接]
跳转到指定楼层
1#
发表于 2017-2-10 10:29:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x

这个帖子送给没有太多实践经验的人,如果是大神,请跳过
首先 _Bool 是C99新增的一个,用法和bool一样, 如下图: 虽然故意初始化为2,但是下边变量显示的值为1;


然后为什么我要用 volatile 关键字呢?
      volatile总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以消除一些代码。但有时这些优化不是程序所需要的,这时可以用volatile关键字禁止做这些优化。
      如果我去掉 这个关键字,如下图: (在编译是会显示一个警告,temp 定义了但是未使用),且编译器会将这个变量给优化掉.


之前做项目时,由于牵涉到好几个临时变量的计算, 但是可恶的是有时候编译器会把那几条语句"优化掉",导致程序不正常,
所以有了这个关键字后,妈妈再也不用担心我的优化


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复