TI中文支持网
TI专业的中文技术问题搜集分享网站

请教,用sprintf能不能直接把无符号长整型变成字符串?还有我下载运行的时候sprintf转换浮点数的时候跑飞是什么原因?

CCS3.3 下,CPU为28335

float i;

int j;

char tt[30];

i = 33.33;

j = 123;

sprint(tt,"%f",i);

结果程序运行到这里就跑飞了,如果改成整型的

比如

sprintf(tt,"%d",j);

就执行正常,不会跑飞.

程序编译的时候没有任何报错.

mangui zhang:

sprint(tt,"%f",i);  为什么不是sprintf()呢???

CCS3.3 下,CPU为28335

float i;

int j;

char tt[30];

i = 33.33;

j = 123;

sprint(tt,"%f",i);

结果程序运行到这里就跑飞了,如果改成整型的

比如

sprintf(tt,"%d",j);

就执行正常,不会跑飞.

程序编译的时候没有任何报错.

chen liu3:

回复 mangui zhang:

打错了,我是手打上去的,不是拷贝的

CCS3.3 下,CPU为28335

float i;

int j;

char tt[30];

i = 33.33;

j = 123;

sprint(tt,"%f",i);

结果程序运行到这里就跑飞了,如果改成整型的

比如

sprintf(tt,"%d",j);

就执行正常,不会跑飞.

程序编译的时候没有任何报错.

chen liu3:

回复 chen liu3:

重新整理一下:

void main(void){char tt[50];float i;int j;

.

初始化

.

i = 123.456; j = 654; sprintf(tt,"%d",j); sprintf(tt,"%f",i);//语句不能正常运行,死机。

这次是直接从源程序考下来的.

跟踪跳转两次都到了这里

0B452 sprintf:00B452 FE0A ADDB SP,#1000B453 5DAD MOVZ AR5,@SP00B454 C44E MOVL XAR6,*-SP[14]00B455 DD8A SUBB XAR5,#1000B456 0EA5 MOVU ACC,@AR500B457 5DAD MOVZ AR5,@SP00B458 A84A MOVL *-SP[10],XAR400B459 C248 MOVL *-SP[8],XAR600B45A 76C0B47E MOVL XAR7,#0x00B47E00B45C DD88 SUBB XAR5,#800B45D 5CA5 MOVZ AR4,@AR500B45E 5DAD MOVZ AR5,@SP00B45F 1E42 MOVL *-SP[2],ACC00B460 7680B46C MOVL XAR6,#0x00B46C00B462 C344 MOVL *-SP[4],XAR700B463 DD8E SUBB XAR5,#1400B464 C246 MOVL *-SP[6],XAR600B465 5DA5 MOVZ AR5,@AR500B466 76409AB4 LCR __TI_printfi00B468 8A4A MOVL XAR4,*-SP[10]00B469 2BC4 MOV *+XAR4[0],#000B46A FE8A SUBB SP,#1000B46B 0006 LRETR 00B46C _outs:

CCS3.3 下,CPU为28335

float i;

int j;

char tt[30];

i = 33.33;

j = 123;

sprint(tt,"%f",i);

结果程序运行到这里就跑飞了,如果改成整型的

比如

sprintf(tt,"%d",j);

就执行正常,不会跑飞.

程序编译的时候没有任何报错.

guoz:

回复 chen liu3:

最近也遇到这个问题了, 你是怎么解决的啊,  重写 sprintf 这个函数吗?

赞(0)
未经允许不得转载:TI中文支持网 » 请教,用sprintf能不能直接把无符号长整型变成字符串?还有我下载运行的时候sprintf转换浮点数的时候跑飞是什么原因?
分享到: 更多 (0)