鸿 网 互 联 www.68idc.cn

关于函数可变参数结束的有关问题va_arg.

来源:互联网 作者:佚名 时间:2015-09-03 08:24
关于 函数 可变 参数 结束 的 问题 va_arg... msdn的例子里要以一个特殊的值来 结束 ,除此之外还有其他方法吗,首先我不想强制这个特殊值,用户当然也希望写到哪儿算哪儿,而且如果加特殊值,比如0和-1什么的,但用户可能需要这些值传入 参数 ,我这里写的是double
关于函数可变参数结束问题va_arg...
msdn的例子里要以一个特殊的值来结束,除此之外还有其他方法吗,首先我不想强制这个特殊值,用户当然也希望写到哪儿算哪儿,而且如果加特殊值,比如0和-1什么的,但用户可能需要这些值传入参数,我这里写的是double,用于坐标,超过栈顶返回的先是两个0.0,然后就乱了,可用户要传两个0.0(原点)是很经常的,请教如何解决

------解决方案--------------------------------------------------------
用第一个参数表示参数的个数。
------解决方案--------------------------------------------------------
使用汇编语言检查返回地址,可以确定参数个数。
------解决方案--------------------------------------------------------
遵循古老的传统吧。

function(int argc, char** argv);


------解决方案--------------------------------------------------------
这种方式是不好的,高级语言的目的就是避免使用低级的语言,隐藏细节
还是用结束元或者根据第一个参数能推导参数个数比较合理
探讨
使用汇编语言检查返回地址,可以确定参数个数。
网友评论
<