PICC的编译确实有好多问题吗?

2020-02-09 09:20发布

#include "pic16f716.h"

void send_ir();
void test();

//        unsigned char KeyValue=1;
void send_ir()
{

}


void main(void)
{
        while(1)
        {
                switch (1)
                {
                        case 1:send_ir();break;       
                        case 2:send_ir();break;
                        case 3:send_ir();break;
                        case 4:send_ir();break;
                        case 5:send_ir();break;
                        default:break;
                }
        }
}
就是这么简单的代码,我用的是picc8.05,单步调试,结果switch语句你就是进不去,奇怪吧。如果把这个switch语句写成一个函数,在main中调用这个函数,他就正确了。怎么回事,难道是picc编译的毛病?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
bigZ
1楼-- · 2020-02-10 02:24
单步看汇编,看走到哪里了,可能是优化问题
也可以关闭优化试试
youkebing
2楼-- · 2020-02-10 03:40
自己写的程序的问题,和picc无关,好歹picc也是商业软件。我n年前用过,觉得还是很不错的。
wsm80828
3楼-- · 2020-02-10 04:40
被优化的可能性很大
wmm20031015
4楼-- · 2020-02-10 10:17
 精彩回答 2  元偷偷看……
backup
5楼-- · 2020-02-10 15:10
switch (1)和a=1,switch (a) 对于使用了优化功能的编译器而言是有区别的。

不过PICC的优化有时............

把优化功能关闭了试试吧!
blue1025
6楼-- · 2020-02-10 18:25
明显是优化了,我用picc9.51很长时间,其编译效果还是非常不错了

一周热门 更多>