首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

Keil中char类型的输出有关问题

2012-03-23 
Keil中char类型的输出问题#include at89x52.h#include stdio.hmain(){unsignedchari0x55SCON0x10T

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。

热点排行