首先:我知道printf以及许多的printf类的函数都返回格式化后的字符长度。但是前提条件:
1.不占用实际内存
2.不使用NULL指针。
原因是使用G2553,硬件的内存非常有限,希望做到最小的系统内存开销。
printf函数已经用在它处,不能再使用了。
sprintf和vsprintf会造成已经数组的浪费。
并且IAR编译器中,使用NULL指针会造成系统崩溃(编译器并没有处理好NULL地址)。
如:char len = sprintf(NULL, "Hello world! %f\r\n", 3.14);会导致系统崩溃。
想问一下大家,有没有合适的函数可以用最小系统开销, 计算出格式化字符的最终长度。
比如(“hello world %02d”, 5)得到的结果应该是"hello world 05",长度应为14。