一个有趣的实验:
说明%号一出现要么被”吃掉”要么他会终止与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 ('