求助一下C语言中的volatile作用

2019-07-21 08:25发布

我发现stm32f10x.h文件里进行了宏定义#define     __O     volatile                  /*!< defines 'write only' permissions     */#define     __IO    volatile                  /*!< defines 'read / write' permissions   */
但是通过网上查询对volatile没有太明白,想请问一下各位有没有什么简单的理解方式,我不要求太深入、太专业,只要能让我这个新人简单明白大概的作用即可,能举出例子更好。
非常感谢各位的教导!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
ssssssssssss
1楼-- · 2019-07-23 01:30
warship 发表于 2018-8-10 09:24
这种赋值语句不说明问题,
我认为编译出来,会以最后一次为准,
即count=6

如果第一句和第二句加一句i=0;编译器也给我优化了?编译器也给我吧count优化了?
ssssssssssss
2楼-- · 2019-07-23 05:39
warship 发表于 2018-8-10 09:24
这种赋值语句不说明问题,
我认为编译出来,会以最后一次为准,
即count=6

怎么才能查看编译器优化了的东西?
warship
3楼-- · 2019-07-23 07:13
 精彩回答 2  元偷偷看……
warship
4楼-- · 2019-07-23 12:32
ssssssssssss 发表于 2018-8-10 09:31
怎么才能查看编译器优化了的东西?

仿真的时候对照查看汇编窗口
lvkanger
5楼-- · 2019-07-23 13:39
warship 发表于 2018-8-9 22:55
简单地说,volatile就是告诉编译器,不要自作聪明地去优化与这个变量有关的代码
严格做到:每一次的读写都 ...

很易懂!赞一个
1208
6楼-- · 2019-07-23 16:11
warship 发表于 2018-8-9 22:55
简单地说,volatile就是告诉编译器,不要自作聪明地去优化与这个变量有关的代码
严格做到:每一次的读写都 ...

讲得不错,赞一个

一周热门 更多>