关于printf问题

68872401   2007-4-5 09:58 楼主
#include <stdio.h>
#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的输出??

回复评论 (5)

多把是没有加入rts55.lib
向工程中加入此文件即可
点赞  2007-4-6 06:55
搜索一下ti按照文件夹即可找到此文件
点赞  2007-4-6 06:56

我用的是2812牙

rts55.lib是什么库文件?
我用的是rts2812。lib
点赞  2007-4-6 07:32
也有可能是需要开启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
   
}


点赞  2007-4-6 13:05
不过如果编译没错,那应该不是cmd文件的问题

=============

点赞  2007-4-6 13:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复