Calls with a Variable Number of Arguments

原创 2004年08月18日 16:45:00

From: C Language Reference (Visual C++ .NET)

A partial parameter list can be terminated by the ellipsis notation, a comma followed by three periods (, ...), to indicate that there may be more arguments passed to the function, but no more information is given about them. Type checking is not performed on such arguments. At least one parameter must precede the ellipsis notation and the ellipsis notation must be the last token in the parameter list. Without the ellipsis notation, the behavior of a function is undefined if it receives parameters in addition to those declared in the parameter list.

To call a function with a variable number of arguments, simply specify any number of arguments in the function call. An example is the printf function from the C run-time library. The function call must include one argument for each type name declared in the parameter list or the list of argument types.

All the arguments specified in the function call are placed on the stack unless the __fastcall calling convention is specified. The number of parameters declared for the function determines how many of the arguments are taken from the stack and assigned to the parameters. You are responsible for retrieving any additional arguments from the stack and for determining how many arguments are present. The STDARG.H file contains ANSI-style macros for accessing arguments of functions which take a variable number of arguments. Also, the XENIX?- style macros in VARARGS.H are still supported.

This sample declaration is for a function that calls a variable number of arguments:

int average( int first, ...);
Microsoft Specific —>

To maintain compatibility with previous versions of Microsoft C, a Microsoft extension to the ANSI C standard allows a comma without trailing periods (,) at the end of the list of parameters to indicate a variable number of arguments. However, it is recommended that code be changed to incorporate the ellipsis notation.

END Microsoft Specific


redis数据库基础之基本操作 1,简介: redis,k-v数据库,可以包含的数据类型有字符串,哈希,链表,集合,有序集合。 数据类型支持push/pop,add/remove,取交集,并...
  • SiuKong_Ngau
  • SiuKong_Ngau
  • 2017年03月23日 21:30
  • 868


  • u014374031
  • u014374031
  • 2017年01月17日 21:19
  • 2463


1.hash> keys *ServiceConfig* 1) "NGMA_SYSTEM:com.polycom.rpum.core.dal.memi.NgmaServi...
  • hanruikai
  • hanruikai
  • 2015年06月11日 17:10
  • 786

Redis 五种数据结构

巴拉巴拉啦 更新中.....
  • Josn_Hao
  • Josn_Hao
  • 2017年06月01日 00:30
  • 223

redis 5中数据类型.详细用法.

redis 数据类型 以及详细范例
  • zhang89xiao
  • zhang89xiao
  • 2016年04月28日 09:53
  • 2310

cocos lua遇到的一些问题

做完lua版棋牌游戏,下面把我遇到的一些问题记录下。 一、确定版本 关于版本问题真的要好好计划下,目前苹果官方下达通牒,所有app必须支持IPv6。而lua热更新机制是去请求网站,低版本可能不支持IP...
  • msdb198901
  • msdb198901
  • 2016年08月05日 14:12
  • 2916


1.redis-cli使用时各参数的含义和使用方法xubo@xubo:~/7000$ redis-cli --help redis-cli 3.0.3Usage: redis-cli [OPTION...
  • bob601450868
  • bob601450868
  • 2015年09月11日 17:07
  • 3704


Redis的简介  Redis是完全开源免费的,遵守BSD协议,先进的key -value持久化产品。它通常被称为数据结构服务器,因为值(value)可以是字符串(String), 哈希(Map)...
  • huo_chai_gun
  • huo_chai_gun
  • 2014年11月20日 11:29
  • 446


转自: python操作mysql方法和常见问题   ...
  • taohuaxinmu123
  • taohuaxinmu123
  • 2014年11月03日 22:45
  • 2236

Python输出日志 import loggingif __name__ == '__main__': # ...
  • Shingle_
  • Shingle_
  • 2017年03月31日 14:01
  • 296
您举报文章:Calls with a Variable Number of Arguments