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 这个函数吗?