http://www.cnblogs.com/fanzhidongyzby/p/3519838.html
文章讲了printf的执行原理。但是如果只是想重定向printf的标准输出的位置只需要重新定义一下fputc等函数即可。
上图为重新定义的fputc函数,用于重定向标准输出的设备,此处为串口输出。
可以看到fputs等函数就在stdio.h中进行的定义。而printf即为标准输出函数,也在stdio.h中定义,printf的一种实现方式如下:
可以看到,printf会调用puts,最终会调用到fputc函数,大致调用的过程如此。实际代码调用很繁琐,可以看上面文章介绍,不过如果只为了重定义标准输出,可能大概懂这些差不多了,剩下的就是照着改一下就好了。