#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
完整应该是这样,,,楼主的少了#ifdef __GNUC__ 如果不定义GNUC则默认使用#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
不知道楼主用的是什么开发环境,,,
如果用MDK而且 就不用定义GNUC,或者只保留#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
函数fputc()在stdio.h中有定义,当然工程要包括stdio.h才能用printf()