大家帮我看一段可变参数的代码 va_start(objvalist, in_nFirst);这句是把可第一个可变参数(一般是第二个)的值赋给in_nFirst,你写这段代码是这个意思吗?能不能说清楚一点程序的目的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我希望的功能是可以用可变参数列表来实现一个集合类的创建就是将在参数中列表中的所有参数作为这个集合的所有元素我的代码几乎就是照抄MSDN上的例子不知为什么会产生这样的错误! 刚刚将MSDN上的例子放到我的程序里也是不行!MSDN上是average(...);我在每次加起来前将传入的参数打印出来我调用average(1,2,3);但是打印的参数为,1,2,3,... 这段代码这样改:createSet不变,仍旧是判断到-1时结束。void Set :: insertItems(int in_nFirst, ...){ int i = in_nFirst; va_list objvalist; va_start(objvalist, in_nFirst);//这里 while( i ){//改为while(i != -1),也用-1来结束 int nPos = 0; int nTempValue = 0; while((nTempValue = getAt(nPos ++)) != NULL){ if(nTempValue > i){ break; } }// END while((nTempValue = getAt(nPos ++)) != -1) this->insertAt( i, --nPos ); i = va_arg( objvalist, int); }// END while( in_nFirst ) va_end(objvalist);}// END insertItems(int in_nFirst, ...)调用时最后一个参数要为-1.objSet.createSet(1,2,3, -1);调用insertItems时也是用-1来做最后一个参数。 但是可变参数的函数一般要求第一个做可变参数的总个数,比如:object.createSet(4,1,2,3,4)这样就好判断多了。 我明白了虽然是可变参数,但是什么时候可变参数结束是需要自己判断的我仔细看了MSDN上的例子,它调用时是average(1,2,3,-1);我明白了,谢谢各位指点 链接错误,求助 vc 如何打包应用程序(exe),当源程序里面含有多个文件夹? 邓总,麻烦重新发一下[自绘按钮实现颜色选择器 ]的代码 窗口基类的封装 xp下截取的图片跟在2000下面截取的图片有什么不一样的啊? 还是关于datagrid的问题 ado 调用多个CString 参数的问题,数据库高手请进。 基于MFC的单文档OpenGL程序中图形无法自动旋转的问题 请教:Activex 里面怎么用http协议跟远程机器通信? 类似游戏数据包的重发,如何设计 求教smtp,pop编程问题 help!!!!!!!!!!!!!! Which book I should buy
就是将在参数中列表中的所有参数作为这个集合的所有元素
我的代码几乎就是照抄MSDN上的例子
不知为什么会产生这样的错误!
MSDN上是average(...);
我在每次加起来前将传入的参数打印出来
我调用average(1,2,3);
但是打印的参数为,1,2,3,...
createSet不变,仍旧是判断到-1时结束。
void Set :: insertItems(int in_nFirst, ...)
{
int i = in_nFirst;
va_list objvalist;
va_start(objvalist, in_nFirst);
//这里
while( i ){
//改为while(i != -1),也用-1来结束
int nPos = 0;
int nTempValue = 0;
while((nTempValue = getAt(nPos ++)) != NULL){
if(nTempValue > i){
break;
}
}// END while((nTempValue = getAt(nPos ++)) != -1)
this->insertAt( i, --nPos );
i = va_arg( objvalist, int);
}// END while( in_nFirst )
va_end(objvalist);
}// END insertItems(int in_nFirst, ...)调用时最后一个参数要为-1.
objSet.createSet(1,2,3, -1);
调用insertItems时也是用-1来做最后一个参数。
object.createSet(4,1,2,3,4)
这样就好判断多了。
虽然是可变参数,但是什么时候可变参数结束是需要自己判断的
我仔细看了MSDN上的例子,它调用时是average(1,2,3,-1);
我明白了,谢谢各位指点