[应用相关] 如何看待keil的编译器优化

[复制链接]
5342|5
 楼主| huangfeng33 发表于 2013-3-28 16:05 | 显示全部楼层 |阅读模式
最近在用keil编写程序。由于编写的程序比较复杂,经常由于编译器优化的原因产生问题,会死在莫名奇妙的地方。最明显的现象是用串口发送数据。本来会发数据上来,可是会因为一条赋值语句,就不发数据。这些问题很莫名,搞的我头大。后来发现是编译器优化的问题。于是通过keil的工程设置里的C51选项下,将编译器优化降为最低等级。很多问题得到了改善。但仍然会出问题。出问题的地方,随便加些代码,可能就又好了。
  因此,我想提出几个问题:
1、如何看待keil的编译器优化?
   2、编写复杂程序的时候(中断多,变量多)是否应该禁止编译器优化?
   3、如何避免编译器优化的问题?除了volitile的应用,还有其他方法么?
   4、对于我来说,最快的解决方法是keil中如何禁止编译器优化?
aozima 发表于 2013-3-28 16:38 | 显示全部楼层
先规范自己的程序吧,如果程序无问题而编译器错误地优化了,可以通知编译器厂商修正(这类机会很少)。
baidudz 发表于 2013-3-28 18:32 | 显示全部楼层
还是要先规范自己写的程序
火箭球迷 发表于 2013-3-28 18:48 | 显示全部楼层
不能太依靠编译器的优化
txcy 发表于 2013-3-28 18:58 | 显示全部楼层
感觉还是LZ自己编写的代码存在问题,应该不是编译器优化造成的
hawksabre 发表于 2013-3-28 19:51 | 显示全部楼层
先规范自己的程序   需要有好的书写代码的习惯  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

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