va_start可变参数函数

news/2024/11/13 9:01:07/
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);
int vprintf(const char *format, va_list ap);    //打印字符串
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);

举例

#include <stdio.h>
#include <stdarg.h>void func(const char *format, ...)
{va_list ap;char *str;va_start(ap, format);vprintf(format, ap);while(...){str = va_arg(ap, char*);printf("str = %s\n", str);}va_end(ap);return;
}int main()
{func("hello %s %s", "furong", "quange");return 0;
}

http://www.ppmy.cn/news/222270.html

相关文章

C语言中: va_list 解决变参问题

VA_LIST 是在C语言中解决变参问题的一组宏&#xff0c;所在头文件&#xff1a;#include <stdarg.h>,用于获取不确定个数的参数 ——摘自百度百科 va_list 是一个字符指针&#xff0c;在代码中可以理解为指向当前参数的一个指针&#xff0c;这里有几个与 va_list 相关的常…

va_list原理及用法

VA_LIST 是在C语言中解决变参问题的一组宏&#xff0c;变参问题是指参数的个数不定&#xff0c;可以是传入一个参数也可以是多个;可变参数中的每个参数的类型可以不同,也可以相同;可变参数的每个参数并没有实际的名称与之相对应&#xff0c;用起来是很灵活。其中va_list&#x…

d va爬黑板animate_复合绝缘子的爬电距离(注电案例1295)

某500kV架空输线路工程&#xff0c;最高运行电压550kV&#xff0c;导线采用4JL/GIA−500/45&#xff0c;子导线直径30.0mm&#xff0c;导线自重荷载为16.529N/m。基本风速27m/s&#xff0c;设计覆冰10mm。请回答下列问题。 1295&#xff0e;根据以下情况&#xff0c;计算导线悬…

C语言的va_list使用方法

一、定义 在C中又函数重载功能&#xff0c;C语言中也是又类似功能的&#xff0c;如经常见到的 int fun(char *format, ... ),该函数的参数个数是未定的&#xff0c;以此实现了类似重载的功能&#xff0c;我们用的最多的printf() 函数就是这样实现的&#xff0c;现在来讲讲这个…

Linux 下 va_start、va_end 学习及使用

本文主要介绍可变参数 函数的实现方法。 头文件&#xff1a;#include <stdarg.h> 一、函数系列介绍 1、va_start函数 原型&#xff1a;void va_start(va_list ap, last); ap&#xff1a;va_list 类型的变量&#xff0c;指向参数的指针 last&#xff1a;最后一个显式声明…

va_list(可变参数函数的使用)

A_LIST 是在C语言中解决变参问题的一组宏&#xff0c;变参问题是指参数的个数不定&#xff0c;可以是传入一个参数也可以是多个;可变参数中的每个参数的类型可以不同,也可以相同;可变参数的每个参数并没有实际的名称与之相对应&#xff0c;用起来是很灵活。 va_list 用法示例:…

va_list函数

va_list是用来处理可变参数的&#xff0c;下面看一个示例。 #include "stdarg.h" #include <stdio.h>int test(char* msg, ...);int main() {test("hello", "wolrd",1);return 0; }int test(char* msg, ...) {va_list vaList; //定义一个…

va_start 用法

可以参考&#xff1a;C 标准库 - <stdarg.h> 1. 在C中&#xff0c;当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void foo(...); void foo(parm_list,...);这种方式和我们以前认识的不大一样&#xff0c;但我们要记住这是C中一种传参的形式…