一个典型的过程是
int sum(char *msg, ...) { va_list st; va_start(st, msg); int total = 0; int tmp; while((tmp = va_arg(st, int)) != 0) { total += tmp; } va_end(st); cout << "The sum of the list is: " << total; return 0; }
由于sum函数自身是不知道有几个参数的,只知道可变参数的首地址是&msg + sizeof(char)。