注册 登录
编程论坛 C++教室

关于函数中的...参数

独孤剑魔 发布于 2008-09-15 21:09, 791 次点击
#include<iostream>
#include<string>
#include <stdarg.h>
using namespace std;
void ret(string str,...)
{
    va_list ap;
    string s=NULL;
    int n=5;
    int l=10;
    va_start(ap,str);
    s=va_arg(ap,string);
    n=va_arg(ap,int);
    l=va_arg(ap,int);
    va_end(ap);
    cout<<s<<endl;
    cout<<n<<endl;
    cout<<l<<endl;
}
void main(int argc,int argd)
{
    string str = "hello";
    int h=99,l=99;
    ret(str,h,l);
}

编译后没有任何错误与警告..
--------------------Configuration: aqc - Win32 Debug--------------------
Compiling...
wqd.cpp
Linking...

aqc.exe - 0 error(s), 0 warning(s)

但是无法运行。。。试问是哪处问题了。
2 回复
#2
xianshizhe1112008-09-17 11:48
#include<iostream>
#include<string>
#include <stdarg.h>
using namespace std;
void ret(string str,...)
{
    va_list ap;
    string s=NULL;
    int n=5;
    int l=10;
    va_start(ap,str);
    s=va_arg(ap,string);
    n=va_arg(ap,int);
    l=va_arg(ap,int);
    va_end(ap);
    cout<<s<<endl;
    cout<<n<<endl;
    cout<<l<<endl;
}
void main(int argc,int argd)
{
    string str = "hello";
    string abc = NULL; // 出错 ,字符串对象不能为空
    int h=99,l=99;
    ret(str,h,l);
}
1