迅维网

标题: c语言中 volatile _Bool 关键字说明 [打印本页]

作者: バ幸福De右岸    时间: 2017-2-10 10:29
标题: c语言中 volatile _Bool 关键字说明

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


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


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






欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4