I have tested a simple variable argument list in c program, my gcc 5.4 show different result as expected
-----------------------------------------
#include <studio.h>
#include <stdarg.h>
double average(int num,...) {
va_list valise;
double sum = 0.0;
va_start(valise, num);
for (int i = 0; i < num; i++) sum += va_arg(valise, int);
va_end(valise);
return sum/num;
}
int main() {
printf("Average 2, 3, 4, 5, 6 = %f\n", average(5, 2, 3, 4, 5, 6);
printf("Average 5, 10, 15 = %f\n", average(3, 5, 10, 15);
}
-----------------------------------------------------------------------
1674982.4
10
Which I assume should be
4
10
Plz help