您的位置:首页 > 编程语言 > C语言/C++

C语言中 variable argument 可变参数用法

2016-08-11 17:28 260 查看
如果函数的形参不确定,C 函数可以使用可变参数定义,用3个点 '.' 表示(...),很多我们经常用到的 printf 等函数都是这种形式定义的如:


#include <stdio.h>




printf:


int printf(const char* format, ...);




sprintf:


int sprintf(char* str, const char* format, ...);




fprintf:


int fprintf(FILE* fp, const char* format, ...);
要定义自己的可变参数函数,需要包含<stdarg.h>,其中包含 va_list 和相关宏,具体点就3个宏 va_start,

va_end,va_arg,va 表示 variable argument

简单的可变参数的用法


void simpleprint(char *format, ...)


{


    va_list arg;                          // 定义一个 va_list 变量


    va_start(arg, format);          // 指向可变参数的第一个参数


    vprintf(format, arg);             // 调用 vprintf 函数执行


    va_end(arg);                      // 将 arg 置为 NULL


}

上面代码中用到了 vprintf 函数,关于这类函数介绍:


#include <stdarg.h>




vprintf:


vprintf(const char* format, va_list ap);       // ap 指向第一个可变参数,功能和 printf 一样




vfprintf;


vfprintf(FILE* fp, const char* format, va_list ap); // 类似 fprintf




vsprintf:


vsprintf(char* str, const char* format, va_list ap); // 类似 sprintf 



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: