|
|
发表于 2005-8-17 05:13:08
|
显示全部楼层
Post by lollipop
参数的个数怎么传递?
- void easy_printf(char* arg_types, ...){
- va_list arg_list;
- int arg_int;
- char * arg_str;
- double arg_float;
- char * cur_type;
- cur_type = arg_types;
- va_start(arg_list,arg_types);
- while('\0' != *cur_type){
- switch(*cur_type){
- case 'i':
- arg_int = va_arg(arg_list,int);
- cerr << arg_int;
- break;
- case 'f':
- arg_float = va_arg(arg_list,double);
- cerr << arg_float;
- break;
- case 's':
- arg_str = va_arg(arg_list,char*);
- cerr << arg_str;
- break;
- default:
- break;
- }
- cur_type++;
- }
- va_end(arg_list);
- cerr << endl;
- }
复制代码
一个小例子。使用的时候,easy_printf("sss", "ok", "u", "right"); 通过第一个参数“sss”知道后面还有三个参数。 |
|