先把编译环境交代一下:MPLAB8.6+picc8.05
以下是我发现的问题:
1
#include "pic16f716.h"
unsigned char KeyValue=1;
void send_ir(unsigned int Data)
{
}
void main(void)
{
while(1)
{
switch (KeyValue)
{
case 1:send_ir(1);break;
case 2:send_ir(1);break;
case 3:send_ir(1);break;
case 4:send_ir(1);break;
case 5:send_ir(1);break;
default:break;
}
}
}
(1)这个时候编译出现:Error[000] 0 : Refc == 0 in decref错误!
(2)而后我把void send_ir(unsigned int Data)改成void send_ir(unsigned char Data),编译通过了(int->char)
(3)或者,我把switch语句中的任意3个case给注释掉,编译也能通过;
2、我把程序改写成如下形式,编译也能通过:(switch放在一个函数里)
#include "pic16f716.h"
unsigned char KeyValue=1;
void send_ir(unsigned int Data)
{
}
void test()
{
switch (KeyValue)
{
case 1:send_ir(1);break;
case 2:send_ir(1);break;
case 3:send_ir(1);break;
case 4:send_ir(1);break;
case 5:send_ir(1);break;
default:break;
}
}
void main(void)
{
while(1)
{
test();
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>