如果我调用va_arg
的次数少于可变参数函数中传递的参数数量,这是未定义的行为吗?
例如:
#include <stdarg.h>
void foo(unsigned n, ...) {
va_list ap;
int bar = 0;
va_start(ap, n);
if (n) bar = va_arg(ap,int);
// Do something with bar
}
int main() {
foo(2, 3, 4);
return 0;
}
该程序会导致未定义的行为吗?