#include <stdio.h>
#include <stdarg.h>
void show(int m,va_list args);
void func(int m, ...){
int *temp = &m, i;
temp++;
for( i=0;i<m; i++){
printf("%d\n", *temp);
temp++;
}
}
void func1(int m, ...){
va_list args;
va_start(args, m);
show(m, args);
va_end(args);
}
void show(int m,va_list args){
int temp;
while(m){
temp = va_arg(args, int);
printf("%d\n", temp);
m--;
}
}
int main(){
int a = 10;
int b = 20;
int c = 30;
int d = 40;
func(4, a,b,c, d);
func1(4, a,b,c,d);
return 0;
}
va_start,va_list,va_end使用及原理
最新推荐文章于 2021-05-01 12:56:28 发布
本文介绍了一个使用C语言实现的可变参数函数示例。通过`func`和`func1`两个函数展示了如何处理不确定数量的参数,并演示了如何使用`va_list`、`va_start`、`va_arg`和`va_end`宏来访问这些参数。此外,还提供了一个简单的测试用例来展示其功能。
767

被折叠的 条评论
为什么被折叠?



