■ va_函数使用
■ 宏定义可变参数使用
■ 例子
#include <stdarg.h>
#include<iostream>
using namespace std;
#define D_LEN_TEXTLOG 512
void outputlog(const char *fmt, ...)
{
char acTextBuf[D_LEN_TEXTLOG] = {0};
int i4Len = 0;
va_list valist;
va_start(valist, fmt);
i4Len = vsnprintf(acTextBuf, D_LEN_TEXTLOG, fmt, valist);
va_end(valist);
cout << " ========================= " << endl;
cout << " len :" << i4Len << endl;
cout << " buffer :" << acTextBuf << endl;
}
void tVarArg(int num,...)
{
va_list argp;
va_start(argp,num);
while(--num>=0)
printf("%s\n",va_arg(argp,char*));
va_end(argp);
return ;
}
#define LOG_USR_STR(fmt, ...) outputlog(""fmt, ##__VA_ARGS__)
#define LOG_MY_USR_STR(fmt, ...) LOG_USR_STR(""fmt, ##__VA_ARGS__)
#define LOG_USR_STR_OTHER( ...) outputlog((char*)__VA_ARGS__)
int main() {
LOG_USR_STR("hello %d, %s", 100, "nihao");
LOG_USR_STR();
LOG_MY_USR_STR("hello %d, %s", 100, "nihao");
LOG_USR_STR_OTHER("hello %d, %s", 100, "nihao");
//LOG_USR_STR_OTHER();//失败
tVarArg(5,"Hello! ","My ","name ","is ","neverTheSame.n");
return 0;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。