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条回答
jsjjccc
1楼-- · 2020-02-09 12:44
确实感觉问题好多的感觉好麻烦,编译出来的东西不太听你C语言的话.烦的不得了
millwood0
2楼-- · 2020-02-09 14:36
"怎么回事"

this is clearly a case where the programmer has zero clue on how to code the device, or is too stupid to read and understand the compiler manual / device datasheet.
hgasrb
3楼-- · 2020-02-09 16:18
回复【2楼】millwood0  
-----------------------------------------------------------------------
我以前没有用过pic,现在才学的,不好意思,见笑了。另外那句test();应该把注释掉。
jerico
4楼-- · 2020-02-09 18:58
不要怀疑商用的编译器有这么大的bug,你这个程序多数是编译器优化了
surf_131
5楼-- · 2020-02-09 21:19
 精彩回答 2  元偷偷看……
hgasrb
6楼-- · 2020-02-09 22:52
回复【5楼】surf_131  
-----------------------------------------------------------------------
我这个是实验程序,switch (1)和a=1,switch (a)又有什么区别啊?为了方便起见,就用常量代替了。关键是为了说明问题,如果你有兴趣,你去看我的另外一个帖子。这不是语句问题,是一个对编译器理解的问题。

一周热门 更多>