min 发表于 2012-8-17 18:53:18

PICC 9.65的指针出错!!

我目前使用的mcu是pic16F946,编译器是PICC 9.65,使用到指针类型,编译出来后指针宽度2 byte,但是寄存器保留的是1 byte的宽度,造成了其余寄存器的赋值被更改!!!

这么低级的错误也被编译器做出来了,郁闷!
有没有其他的解决办法?

下面是测试代码,大家可以编译一下看看。
#include <pic.h>

unsigned char k1, k2, k3, *p1, *p2, *p3;
unsigned char k4, k5, k6;
void main()
{
for(;;)
{
k1 = 1;
k2 = 3;
k3 = 0x13;

p1 = &k1;
k4 = *p1;
p2 = &k2;
k5 = *p2;
p3 = &k3;
k6 = *p3;
}
}

http://www.picbbs.net/skins/default/filetype/bmp.gif此主题相关图片如下:c2.bmp

min 发表于 2012-8-17 18:54:18

我标出来的是指针地址,不是指针
页: [1]
查看完整版本: PICC 9.65的指针出错!!