Chinaunix首页 | 论坛 | 博客
  • 博客访问: 406815
  • 博文数量: 48
  • 博客积分: 1820
  • 博客等级: 上尉
  • 技术积分: 705
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-28 23:10
文章分类

全部博文(48)

文章存档

2012年(1)

2011年(12)

2010年(34)

2009年(1)

分类: LINUX

2010-01-28 12:50:10







C 不定参数的实现

#include

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);

va_list ap 
//获取不定参数列表
void va_start(va_list ap, last);
//将不定参数保存到列表ap中, last为前一个变量的名称 
va_end 
// 销毁不定参数列表, 一个va_start必须对应一个va_end

举例
void foo(char *fmt, ...) ;
void foo(char *fmt, ...) {
    va_list ap;
    int d;
    char c, *s;
    va_start(ap, fmt);
    while (*fmt)
    
    switch(*fmt++) {
    
case 'd' :
d = va_arg(ap, char*);
printf("int %d\n", d);
break;
}
      va_end(ap);
阅读(1162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~