Keil中char类型的输出问题
#include <at89x52.h>
#include <stdio.h>
main()
{unsigned char i=0x55;
SCON=0x10;
TI=1; //用方式0发送
printf( "i=0x%x\n ",i);
while(1);
}
本来输出应该是0x55,但是keil中输出的却是0x5500,多出两个00,不知道是什么问题,是不是bug?bug是怎么造成的?
把char类型改成int后,输出正常!
[解决办法]
有可能是printf的隐式转换...
把你传入的8位 转成了16位的值进行输出
[解决办法]
printf( "i=0x%bx\n ",i);
keil c的printf跟ansi c的printf不太一样。如果数据是8位的话,需要加上b。