关于printf问题
#include<string.h>
void main(void)
{
char s[20];
strcpy(s, \"Hello! Turbo C2.0\"
;
puts(s);
strcpy(s, \"Hello! Turbo \"
;
printf(\"%s\\n\", s);
}
stdout中只有Hello! Turbo C2.0
为什么只有puts函数的输出,没有printf的输出?
多把是没有加入rts55.lib
向工程中加入此文件即可
搜索一下ti按照文件夹即可找到此文件
rts55.lib是什么库文件?
我用的是rts2812。lib
也有可能是需要开启Large Memory支持罢
还有一件事:需要配置合适的cmd文件
(一般工程自带的cmd配置的程序存储区大小不足以容纳printf库,这个库还是蛮大的)。
这里是一个范例的cmd文件,确保是可用的。
MEMORY
{
DARAM: o=0x100, l=0x7f00
VECT : o=0x8000, l=0x100
DARAM2: o=0x8100, l=0x7f00
SARAM: o=0x10000, l=0x30000
SDRAM: o=0x40000, l=0x3e0000
}
SECTIONS
{
.text: {} > DARAM
.vectors: {} > VECT
.trcinit: {} > DARAM
.gblinit: {} > DARAM
frt: {} > DARAM
.cinit: {} > DARAM
.pinit: {} > DARAM
.sysinit: {} > DARAM
.bss: {} > DARAM2
.far: {} > DARAM2
.const: {} > DARAM2
.switch: {} > DARAM2
.sysmem: {} > DARAM2
.cio: {} > DARAM2
.MEM$obj: {} > DARAM2
.sysheap: {} > DARAM2
.sysstack: {} > DARAM2
.stack: {} > DARAM2
}
不过如果编译没错,那应该不是cmd文件的问题
=============