可移植的单片机printf(print by format)函数实现

2019-04-15 12:34发布

一个有趣的实验:
这里写图片描述
说明%号一出现要么被”吃掉”要么他会终止与f,d,s。
那么再加以大胆猜想:
假设
int sprintf(const char *format, …);
当然我们需要可变参数标准库的支持因为调用的可变参数的方法。当读取到了一个%号,就开始匹配fds中的任意一个,每种的处理方式都不一样。分别是:
char *itoc(int value);
char *ftoc(float value);
再将转换出来的字符串一段段拼接(strcat)起来就成了我们需要输出到串口的字符串。
这里写图片描述 void printf(const char *format, ...) { va_list list; va_start(list, format); char *pFormat = format; char *pInner; char data[256] = {0}; int dataIndex = 0; while ('