本帖最后由 gmgmgm 于 2009-9-7 10:41 编辑
刚入C不久,在实际调试中会出现一些不明白的错误,就是对两个16位的数据直接运算,有时会跑飞了,怀凝的是单片机是8位的,而数据是16位的,不知道有没有关系?
比如:
uint a=0x24a5;
uint b=0xa53c;
uchar s=0x2d;
uint c;
c=b-a;//这里是两位16位的数相减
c=b-s;//这里是16位数与8位数相减
c=b+s;//这里是16位与8位相加
调试时发现运算结果是正确的,但因为程序经常跑飞,怀凝是这样的运算造成的,请前辈指点下,谢谢! |