帮介绍一下C语言里的varargs。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮介绍一下C语言里的varargs。相关的知识,希望对你有一定的参考价值。

部分参数列表可以终止省略号表示法,逗号后面跟三个时期(…),表明可能有更多的参数传递给函数,但没有给出更多的信息是关于他们。不执行类型检查等参数。至少有一个参数必须在省略号表示法和省略号表示法必须是最后一个令牌在参数列表中。没有省略号表示法,函数的行为是未定义的,如果收到参数除了那些中声明的参数列表。
要调用一个函数和一个可变数目的参数,只需指定任意数量的参数调用该函数。一个例子是printf函数从C运行时库。函数调用必须包含一个参数为每种类型声明的名字在参数列表或参数类型的列表。
参考技术A 所谓的varargs,就是可变参数。
具体请看:

参考资料:http://blog.csdn.net/laomai/article/details/276274

参考技术B 不知道

麻烦用比较通俗易懂的语言帮我介绍一下JMS,中间件,webService,WSDL以及SOAP之间的关系.

还是不够详细,我最想弄清楚的是中间件和webservice之间有什么联系,还有为什么要在WSDL中为SOAP指定一个address,这个address是作什么用的,还有如果中间件厂商要为JAVA提供服务是不是必须要遵循JMS,我个人理解JMS应该就是一堆接口和抽象类,以及一些文本规范,同JDBC与JAVAEE类似;这样理解是否正确?以及JMS同WebService之间的关系..
谢谢.

其实解释这几个概念应从WebService开始,这个懂了,其他的都与之相关,也就容易理解了...
WebService 即网络服务...是下一代互联网的发展方向...就是某些公司,用他们的技术提供一些功能的实现,然后对外提供接口,让外界用户调用... 比如:某公司通过其技术,可以获得天气预报的信息,这样它就可以向外界提供一个方法,你调用了这个方法,就可以获取天气预报的信息string字段(举个例子而已,不一定是string这么简单的类型),这就是一种服务...就是WebService...
WSDL:是对如何调用这个接口,应该传怎样的参数,获取的数据怎样分析...等等的XML说明文档...
SOAP:是在这个提供服务与接收服务之间存在的信息交换的通信协议...(其实学习WebService这些东西了解一下就行了,没必要深究)
JMS:JAVE的消息提供平台... 就是一些规范...真没必要懂...
中间件:是一种独立的软件系统或服务系统,用于提供服务... 你可以理解成API...
如果有疑问的话,继续联系我... 红包拿来... 嘿嘿追问

.

追答

WebService对外提供服务的表现形式就是"接口",通俗的说,就是个函数;通过调用这个函数,传入相应的参数,就可以返回XML的数据集.而你通过什么方式去发现这个是你想要的服务呢?这个服务应该怎样调用?应该传入那些参数呢? 这些都在发布服务时,WSDL文档中有说明...你可以阅读,然后了解
你想调用一个网络服务,你必须得知道这个网络服务的URL啊,其实整个的WebService链接都是通过这个URL来实现的,在项目中引用网络服务时必须要填入这个地址的...这就是WSDL中有你说的address的原因...
关于JMS,你的理解是正确的... 额,你可以理解成 WSDL就是对JMS的说明书... 嘿嘿
中间件:老实说,这个概念太广了...就是一种平台,通过它可进行信息的互通...WebService也是一种通信...
还有什么不明了的地方呢?...

参考资料:http://baike.baidu.com/view/23710.htm

参考技术A 其实解释这几个概念应从WebService开始,这个懂了,其他的都与之相关,也就容易理解了...
WebService 即网络服务...是下一代互联网的发展方向...就是某些公司,用他们的技术提供一些功能的实现,然后对外提供接口,让外界用户调用... 比如:某公司通过其技术,可以获得天气预报的信息,这样它就可以向外界提供一个方法,你调用了这个方法,就可以获取天气预报的信息string字段(举个例子而已,不一定是string这么简单的类型),这就是一种服务...就是WebService...
WSDL:是对如何调用这个接口,应该传怎样的参数,获取的数据怎样分析...等等的XML说明文档...
SOAP:是在这个提供服务与接收服务之间存在的信息交换的通信协议...
参考技术B 当在soap服务器上成功发布好共享服务后,对于远程客户端如果想使用soap服务器上所发布的服务,必须想要获取该服务的相关信息,如调用的接口说明、传入传出参数等;例如对于axis服务,远程客户端可以使用http://127.0.0.1:8080/axis/services/AddressBook?wsdl的命令查询AddressBook服务所发布的所有相关信息,即就是在请求的最后加上?wsdl字样,这样该服务相关的详细信息会以wsdl语言格式在客户端的浏览器上显示出来;
<soap:address location="xxxx"/> 定义了远程服务器的连接信息;

参考资料:http://weiway30.blog.163.com/blog/static/315743292008101784949640/

以上是关于帮介绍一下C语言里的varargs。的主要内容,如果未能解决你的问题,请参考以下文章

Java Varargs 可变参数使用

java语言中的varargs

用于 C 的 Varargs `ELEM` 宏

Chez Scheme 中的 FFI,用于具有可变参数 (varargs) 的 C 函数

java可变参数Varargs

C#/.NET 泛型和 Cdecl Varargs 错误?