How to count the no of arguments passed to the function in following program:
#include<stdio.h>
#include<stdarg.h>
void varfun(int i, ...);
int main(){
varfun(1, 2, 3, 4, 5, 6);
return 0;
}
void varfun(int n_args, ...){
va_list ap;
int i, t;
va_start(ap, n_args);
for(i=0;t = va_arg(ap, int);i++){
printf("%d", t);
}
va_end(ap);
}
This program's output over my gcc compiler under ubuntu 10.04:
234561345138032514932134513792
so how to find how many no. of arguments actually passed to the function?
You can't. You have to manage for the caller to indicate the number of arguments somehow. You can: