va_arg手册页的“随机错误”是什么意思

时间:2019-04-12 18:13:59

标签: variadic-functions

我有一段代码,最多可以包含8个可变参数。

但是有时候我传递的参数少于8个。

我没有在函数调用中传递参数的数量,而是一个可以解码为字符串格式的参数。

va_arg的手册页显示- “如果没有下一个自变量,或者类型与实际的下一个自变量的类型不兼容(根据默认自变量提升),则将发生随机错误。”

在执行代码期间我没有看到任何错误。

在gdb中,我看到随机垃圾值已分配给我的arg [I]。

那么手册页所指的“随机错误”是什么?

uint64 arg[8];
va_list ap;
va_start(ap, num); // num is not number of args, it is function arg
for(int i = 0; i < 8; i++)
  arg[i] = va_arg(ap, uint64);
va_end(ap);

0 个答案:

没有答案