设为首页 加入收藏

TOP

C语言的变参列表 va_list
2019-07-25 14:17:37 】 浏览:139
Tags:语言 va_list

1. va_list的基本原理和用法:

#include<stdio.h>
#include<stdarg.h>
void func(int i,char *ch,...){    //format
    va_list ap;
    va_start(ap,ch);              // 指向某一个参数,从此开始
    char *str;
    str=ch;
    do{
        printf("%s ",str);
        str=va_arg(ap,char*);     // 需要指定参数类型为char*型,不够灵活
    }while(str);
}
int main()
{  
    func(1,"A","B",NULL);
    return 0;
}

2. va_list 与 vsprintf 配合使用:

#include<stdio.h>
#include<stdarg.h>
void func(int i,char *fmt,...){     //format
    va_list ap;
    va_start(ap,fmt);
    char str[20];
    vsprintf(str, fmt, ap);
    va_end(ap);
    printf("%s\n",str);
}
int main()
{  
    char str1[]="str1";
    char str2[]="str2";
    int d=1000;
    func(1,"%s %s %d",str1,str2,d);
    return 0;
}

这也正是 printf 的原理。

扩展:Modern C++中的 initializer_list。

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇已知结点地址,如何访问父结构? 下一篇mimalloc剖析

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目