首页 > 代码库 > c语言 可变参数的使用
c语言 可变参数的使用
主要涉及函数
va_list ap 声明一个指针
va_start(ap,arg) 将ap指向到最后一个确定的参数arg
va_arg(ap,size) 将ap储存的地址加size,指向下一个参数
va_end(ap) 将ap赋值为NULL
va_list ap 声明一个指针
va_start(ap,arg) 将ap指向到最后一个确定的参数arg
va_arg(ap,size) 将ap储存的地址加size,指向下一个参数
va_end(ap) 将ap赋值为NULL
#include<stdarg.h> #include<stdio.h> int sum(int, ...); int main(void) { printf("Sum of 10, 20 and 30 = %d\n", sum(3, 10, 20, 30) ); printf("Sum of 4, 20, 25 and 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); //将指针ap指向最后一个确定的参数 for(i = 0; i < num_args; i++) { val += va_arg(ap, int); //va_arg(),将指针ap指向可变参数的首地址 } va_end(ap); //将指针ap赋值为NULL return val; }
运行结果:
10、20 和 30 的和 = 60
4、20、25 和 30 的和 = 79
10、20 和 30 的和 = 60
4、20、25 和 30 的和 = 79
参考:
http://www.tutorialspoint.com/c_standard_library/c_macro_va_start.htm
c语言 可变参数的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。