私は機能を持っています:
static int myprintf(const char* fmt, ...)
すべての myprintf 引数のバイト単位のサイズを知りたいのですが、それらがバッファに出力された場合です。引数を出力できる配列を動的に割り当てる必要があります ( sprinf
orを使用_vsprinf
) たとえば、32 ビット OS では、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);
複数のバイトが書き込まれているため、機能しません。しかし、おそらくいくつかの回避策があります。
ありがとう