不定参数va_arg的理解

news/2025/3/13 4:44:50/

简易

不定参数主要在printf中实现 主要理解在c/c++里面,主要依靠<stdarg.h>里面va_list,va_start,va_end。

# include<stdio.h>
#include <stdarg.h>void fun(int a,...)
{va_list vsptr;va_start(vsptr,a);申明一个va_list类型对象vsptr,用于对参数进行遍历//在调用va_start之后第一次调用va_arg将返回第一个可变参数的值就是省略号代表的值并不是第一个//在printf中第一个主要传入的是参数的模板而后面才是参数  对于自定义的一般a传的是参数的个数。int s = (int)va_arg(vsptr,int);printf("%d\n",s);va_end(vsptr);
}int main(void)
{printf("Hello World\n");fun(10,20);getchar();  // getchar()函数保证在调试过程中字符一直在终端显示,直到按下任意键return 0;
}

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

相关文章

d va爬黑板animate_部编版四年级语文上册第17课爬天都峰微课视频|MP3朗读|同步练习...

视频微课请拉到文末 视频微课请拉到文末 视频微课请拉到文末同步教材 点击图片,查看大图 ▼▼▼▼ 知识点 一、我会写组词 哩:li(还早哩、吃饭哩、上面哩) 级:j(石级、高级、初级) 链:lin(铁链、表

c语言va_list snprintf 的实现

首先列出我自己实际遇到的一个例子&#xff1a; 在串口向 PC 发送数据时为了实现可变参数的功能&#xff0c;这是工程中遇到的一段代码&#xff1a; int SerialDbgPrintf(uint8 type, char *fmt, ...) { if(type ATCMD) { int cnt; char string[MAX_PRINTF_STR_SIZE] {\0}; v…

va_start可变参数函数

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, con…

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;最后一个显式声明…