帮忙看看这段c++代码哪里出问题了

来源:百度知道 编辑:UC知道 时间:2024/05/28 22:29:53
#include <stdarg.h>
int add_all(int num, ...)
{
int ret = 0;
va_list vl;
vl_start(vl, num);
while(num-- > 0)
{
ret += va_arg(vl, int);
}
va_end(vl);
}

void main()
{
int num = add_all(5, 1, 2, 3, 4, 5);
}

1.vl_start(vl, num); 写错了,应该是va_start(vl, num);
2.add_all函数没有返回值,你完成累加后没有返回,那函数就没有作用了,所以在最后返回累加值 return ret;
3.程序没有输出字符,那你就不知道到底有没有运行正确了,这个不是错误,只是让你看看输出结果所以加了输出,修改后的程序如下:
#include <stdarg.h>
#include <iostream>
using namespace std;
int add_all(int num, ...)
{
int ret = 0;
va_list vl;
va_start(vl, num);
while(num-- > 0)
{
ret += va_arg(vl, int);
}
va_end(vl);
return ret;
}

void main()
{
int num = add_all(5, 1, 2, 3, 4, 5);
cout<<num<<endl;
}