How to use function with dynamic number of argument with va_start(), va_arg() and va_list in C

1 Answer

0 votes
#include <stdio.h>
#include <stdarg.h>
 
void PrintNumbers(int n, ...)
{
	double val;
	
	va_list vl;
	va_start(vl, n);
	for (int i = 0; i < n; i++)
	{
		val = va_arg(vl, double);
		printf ("%f\n",val);
	}
	va_end(vl);
}

 
int main(void)
{
	PrintNumbers(4, 3.14, 1.921, 4.98432, 2.673645);
    
    return 0;
}



/*
run:

3.140000
1.921000
4.984320
2.673645

*/

 



answered Apr 21, 2016 by avibootz

Related questions

...