LAOXU 发表于 2024-5-13 09:15:13

记得c251的 数组定义,必须放在函数外(全局),否则编译通不过。

创隆科技 发表于 2024-5-14 00:48:35

LAOXU 发表于 2024-5-13 09:15
记得c251的 数组定义,必须放在函数外(全局),否则编译通不过。

对,最近遇到的就是
早期用C51时,MODBUSRTU的CRC用数组查表方式,用了几年了!
前年改用32单片机,用C251就不行了!
当时忙,就改用了计算方式,就这么用下来了!
但是问题一直接研究明白
前两天用大彩串口屏时,突然又想到这个问题
检查了半天,也找不到,调试就是卡在数组里
后来把数组不定义在程序区,就正常了!
找到问题,把数组定义在函数外就行了
由于不知道还有哪些注意的地方,特此来问大家,谢谢大家解惑

创隆科技 发表于 2024-5-14 00:50:52

LAOXU 发表于 2024-5-13 09:15
记得c251的 数组定义,必须放在函数外(全局),否则编译通不过。

我的能通过,没有警告没有错误,但是程序执行不对
调试时发现汇编语言总在赋值给一个参数,然后执行两步又跳到这一句,出不来

LAOXU 发表于 2024-5-14 07:49:32

创隆科技 发表于 2024-5-14 00:50
我的能通过,没有警告没有错误,但是程序执行不对
调试时发现汇编语言总在赋值给一个参数,然后执行两步 ...

那就是记忆出偏差,总之,C251的 数组定义,必须放在函数外(全局),否则要出问题的。
页: 1 [2]
查看完整版本: C251(KEIL5)和C51(KEIL4),写程序要注意那些问题?两者有啥不同