我有一个功能:
static int myprintf(const char* fmt, ...)
我想知道所有 myprintf 参数的字节大小,如果它们被打印到缓冲区。我需要动态分配一个数组,我可以打印参数(使用sprinf
or _vsprinf
)例如在 32 位操作系统中,对于 myprintf("%d %c",10,'a'); myprintf 参数的大小为 5。
我试图像这样实现它:
va_list ap;
va_start(ap, fmt);
myArgSize(ap);
有人可以建议如何实施 myArgSize。
我被告知尝试这样的事情
char c;
int len = ::_vsnprintf(&c, 1, fmt, ap);
它不起作用,因为写入了一个以上的字节。但可能有一些解决方法。
谢谢