C编译器的一个BUG,大家遇到问题时要注意看看是否有

[复制链接]
1173|1
手机看帖
扫描二维码
随时随地手机跟帖
ni_labview|  楼主 | 2009-5-31 16:19 | 显示全部楼层 |阅读模式
我已经测试很久了,只要这个if要超过4层,编译器出错的概率要加大,不是显示出错,而是执行时出错,很难查到,我是通过设置分支条件用LED显示查到的,仿真器没看出来。遇到此类问题我目前的解决方法是把内部的两层if()做成函数。

if()
  {
    if()
      {
         if()
           {
             if()
            
            }
       }
    else
      {}

   }
else
   {
    
    }
gary_zou| | 2009-6-27 18:35 | 显示全部楼层

同感

我之前也遇到过此问题,但是没有找到规律。还有一个是,const的结构体数组下标寻址,默认编译会出错,变成了内存地址,实际应为flash地址。试过在前面加上*(const TYPE *)& 可以修复,不知道是不是已知问题?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

178

主题

624

帖子

2

粉丝