HI-TECH-----用数组元素作为if语句里面比较的值之一,有可能导致编译错误---

2020-02-08 12:12发布

就是那种没有任何信息提示的编译错误,它不说错了,但执行结果是错的--------活活整死你
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zf12862177
1楼-- · 2020-02-08 13:12
 精彩回答 2  元偷偷看……
Doraemon
2楼-- · 2020-02-08 18:03
用過PICC9.70
bug多多
比如有時候訪問數組的第一個元素arr[0]時提示編譯錯誤
比如有時候中斷裏不能有結構體指針數組。

等等,升級到9.80後暫時沒有發現類似問題
gwdong
3楼-- · 2020-02-08 21:53
就是这样的代码......编译烧写后总是无法得到期望的行为
for (i=0; i<4; i++)
{
    min16 = BcdAdd(o_num_save2, 1);
    if (o_num_read == min16)
    {
       .......
     }
}

改成这样,人工加入一个临时变量,就对了
for (i=0; i<4; i++)
{
    min16 = BcdAdd(o_num_save2, 1);
    temp16 = o_num_read;
    if (temp16 == min16)
    {
       .......
     }
}

还有就是,这个并不总会发生上面的错误-------不知道它什么时候会给出错的编译结果......
gwdong
4楼-- · 2020-02-09 01:12
感觉------可能不正确--------如果需要编译器自动分配临时变量的地方,比如数组下标,等等,就有可能给出莫名其妙的代码-----行为是错的并且不会给出任何信息.
leofoolish
5楼-- · 2020-02-09 04:54
这个很正常,习惯就好,哈哈,目前最新版本的用起来还行,用16F194x也没什么问题
gwdong
6楼-- · 2020-02-09 09:05
 精彩回答 2  元偷偷看……

一周热门 更多>