天天看点

C++...三个点用法 实现参数个数可变的函数

C语言中实现参数个数可变的函数    

  采用C语言编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等

 1、在win环境下编程例子:

 以下例子在VS2010编译通过。

#include<stdio.h>

#include<string.h>

#include<stdarg.h>

int demo(char * ,...);

int main()

{

demo("TEST",5,4,3,2,1,0);//第一个参数只是一个标识,并不在参数表中。

getchar();

return 0;

}

int demo(char *msg,...)

va_list argp;

int argno = 0;

int para;

va_start(argp,msg);

while (true)

para = va_arg(argp,int);

if (para == 0) break;

printf("Parameter #%d is : %d\n",argno,para);

argno++;

va_end(argp);

2. UNIX System

int   demo(va_alist)     

va_dcl                                           

{  

va_list   argp;                  

int  argno = 0;          

int  para;                    

va_start(argp);          

while   (true)   {  

para  =  va_arg(argp,int);          

if   (para==0)  break;  

printf("Parameter #%d  is: %d\n",argno,para);  

argno++;  

}                   

va_end(argp);                  

return   0;  

继续阅读