keil 编译器中 C51 代码关于sprintf函数char参数的小问题

来源:互联网 发布:阿里大数据产品 编辑:程序博客网 时间:2024/05/17 04:02

最近在写单片机的程序,在keil C51中用到了sprintf函数,

unsigned char tab[10];

unsigned char n=3;

sprintf(tab,"%4d",n);

上述tab 打印出来的话 应该是769;

但是在 VC上编译就是正常的,是3,后来终于知道是keil C51库函数中sprintf 这个函数的参数,就是相对于n这个参数的位置,应该是int型的,我放了一个char型的进去,所以被变大了,(256*n+1);

解决办法就是:

强制类型转换   sprintf(tab,"%4d",(unsigned int)n);以后就正常了。

原创粉丝点击