博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux va_start 编译,C 库宏 – va_start() | 菜鸟教程
阅读量:7025 次
发布时间:2019-06-28

本文共 765 字,大约阅读时间需要 2 分钟。

C 库宏 - va_start()

描述

C 库宏 void va_start(va_list ap, last_arg) 初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。

这个宏必须在使用 va_arg 和 va_end 之前被调用。

声明

下面是 va_start() 宏的声明。

void va_start(va_list ap, last_arg);

参数

ap -- 这是一个 va_list 类型的对象,它用来存储通过 va_arg 获取额外参数时所必需的信息。

last_arg -- 最后一个传递给函数的已知的固定参数。

返回值

NA

实例

下面的实例演示了 va_start() 宏的用法。

#include

#include

int sum(int, ...);

int main(void)

{

printf("10、20 和 30 的和 = %d\n", sum(3, 10, 20, 30) );

printf("4、20、25 和 30 的和 = %d\n", sum(4, 4, 20, 25, 30) );

return 0;

}

int sum(int num_args, ...)

{

int val = 0;

va_list ap;

int i;

va_start(ap, num_args);

for(i = 0; i < num_args; i++)

{

val += va_arg(ap, int);

}

va_end(ap);

return val;

}

让我们编译并运行上面的程序,这将产生以下结果:

10、20 和 30 的和 = 60

4、20、25 和 30 的和 = 79

转载地址:http://iusxl.baihongyu.com/

你可能感兴趣的文章
ExtJS表单提交时,不用鼠标点击按钮提交,直接通过回车键提交
查看>>
运行浏览器的最高版本
查看>>
PHP中解决ajax请求session过期退出登录问题
查看>>
拆分功能:第一步,建立 会员管理系统
查看>>
Android判断当前网络是否可用--示例代码
查看>>
NAT转换
查看>>
获取网站Web服务器类型的办法
查看>>
我的友情链接
查看>>
CXF+Spring+Hibernate实现RESTful webservice服务端示例
查看>>
HTML网络效果收集---HTML
查看>>
Django根据已有数据自动生成Model
查看>>
YAML 语法 规则
查看>>
css @语法,@规则 @import @charset @font-face @fontdef @media @page
查看>>
asp.net系统过滤器、自定义过滤器
查看>>
CSS3 Animation
查看>>
window 下常用的一些命令和应用
查看>>
mysql having的用法
查看>>
重新认识java-忽视的注释
查看>>
Sierpinski三角
查看>>
Dos下查看端口
查看>>