我曾尝试在使用 stdarg.h 的 C 语言中运行以下代码,但由于某种原因我无法让它工作。我没有使用可变参数列表的经验,所以请有人帮忙!
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
int add_stuff_together(int numb_count, ...);
int main()
{
int x = add_stuff_together(2, 1, 1);
printf("%i", x);
return 0;
}
int add_stuff_together(int numb_count, ...)
{
int sum, repeat_times;
va_list args;
va_start(args, numb_count);
for (repeat_times = 0; repeat_times < numb_count; repeat_times++)
{
sum = sum + va_arg(args, int);
}
return sum;
}
我得到的输出是: 172998379
谁能解释一下为什么我会得到这个答案?
最佳答案
您的 sum
变量未初始化,因此它的值可以默认为任何值。
另请注意,您不使用 va_end()
宏,但您应该这样做。
关于c - C 中的可变参数列表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908056/