当前位置:  开发笔记 > 编程语言 > 正文

关于函数定义的问题(参数中的三个点......)

如何解决《关于函数定义的问题(参数中的三个点)》经验,为你挑选了3个好方法。

我遇到了一个函数定义:

char* abc(char *f, ...)
{
}

这三个点是什么意思?



1> paxdiablo..:

省略号表示后面有可变数量的参数.您将使用它们的地方(可能没有意识到)是printf功能系列.

它们允许您创建事先未知参数的样式函数,并且可以使用varargs函数(va_start,va_argva_end)来获取特定参数.

此链接在这里对一个好的论文printf使用变量参数列表中.



2> Assaf Lavie..:

Wikipedia on vararg在C++中的功能.



3> 小智..:

它们被称为省略号,它们意味着该函数可以采用不确定数量的参数.您的函数可能会像这样调用:

abc( "foo", 0 );
abc( "foo", "bar", 0 );

需要有一种方法来指示列表的结尾.这可以通过使用第一个参数来完成,如printf(0格式字符串),或特殊终止符,上例中为零.

具有可变数量参数的函数在C++中被认为是错误形式,因为不能对参数执行类型检查或用户定义的转换.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有