将可变参数列表格式化为一个字符串

2013年7月4日 由 Creater 留言 »

需要使用以下3个宏

#include <stdarg.h>

void va_start(va_list ap, last);
type va_arg(va_list ap, type);
void va_end(va_list ap);
void va_copy(va_list dest, va_list src);

讲这个得资料多如牛毛.比如http://linux.die.net/man/3/stdarg

将可变参数列表格式化为一个字符串,利用vsnprintf就可以了。不采用vsprintf是为了防止溢出。
另外vsprintf使用va_list作为参数,相对来说比用”…”更方便明了。

void Format(const char *format, ...)
{
	va_list ap;
	va_start(ap, format);
	char slask[5000];
	vsnprintf(slask, sizeof(slask), format, ap);
	va_end(ap);
	Send( slask );
}
广告位

发表评论

你必须 登陆 方可发表评论.