[技术问答] 关于Keil MDK编译器及Volatile关键字的问题

[复制链接]
2665|10
 楼主| ssmm1228 发表于 2018-5-7 18:21 | 显示全部楼层 |阅读模式
1 请问所有的变量都加Volatile修饰是否可以?
2 Keil MDK编译器优化问题。总共有5种优化(不优化,-O0,-O1,-O2,-O3),都有什么特点?
请教各位大神。
xxzouzhichao 发表于 2018-5-7 19:48 来自手机 | 显示全部楼层
1,可以,不过有必要吗?
 楼主| ssmm1228 发表于 2018-5-8 10:34 | 显示全部楼层
xxzouzhichao 发表于 2018-5-7 19:48
1,可以,不过有必要吗?

有的地方有必要,比如中断用到的全局变量,这个有必要加。所以担心有的变量忘记加这个修饰词了,索性所有的变量都加?这样做不知是否会带来其他问题。
xxzouzhichao 发表于 2018-5-8 21:49 | 显示全部楼层
ssmm1228 发表于 2018-5-8 10:34
有的地方有必要,比如中断用到的全局变量,这个有必要加。所以担心有的变量忘记加这个修饰词了,索性所有 ...

所有变量都加,运算速度会减慢哦
dongnanxibei 发表于 2018-5-9 10:53 | 显示全部楼层
一般没出过问题,都是自动配置。
xuanhuanzi 发表于 2018-5-9 12:48 | 显示全部楼层
看是否需要了,这个变量是不是需要这种操作。
 楼主| ssmm1228 发表于 2018-5-9 14:55 | 显示全部楼层
xxzouzhichao 发表于 2018-5-8 21:49
所有变量都加,运算速度会减慢哦

嗯嗯,是有这么个问题。
 楼主| ssmm1228 发表于 2018-5-9 14:57 | 显示全部楼层
dongnanxibei 发表于 2018-5-9 10:53
一般没出过问题,都是自动配置。

以前写程序从来没有加过这个修饰词,没出过问题。上次写一个比较复杂的程序出现过莫名其妙的问题,怀疑是跟这个因素有关。
 楼主| ssmm1228 发表于 2018-5-9 14:57 | 显示全部楼层
xuanhuanzi 发表于 2018-5-9 12:48
看是否需要了,这个变量是不是需要这种操作。

就怕某些变量忘记加了
xuanhuanzi 发表于 2018-5-9 15:48 | 显示全部楼层
ssmm1228 发表于 2018-5-9 14:57
就怕某些变量忘记加了

如果是操作不频繁的,又重要的,可以用这个,防止被忽略。
caijie001 发表于 2018-5-10 18:09 | 显示全部楼层
很多书都有介绍,具体肯定忘了,网上顺便查就知道了,我说一本书:嵌入式Linux应用开放完全手册 ——韦东山   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

99

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部