C言語における可変パラメータ
1、ヘッダファイルが必要
2、関数定義
#include <stdarg.h>
2、関数定義
void logcmd(int arg0,...)
void logcmd(char *arg0,...)
3、
i、
void logcmd(int n,...)
{
va_list ap;
int i = 0;
va_start(ap,n);// ap
for(;n;n--)//
printf("%d ",va_arg(ap,int));
va_end(ap);//
printf("
");
}
n ,n 。 :
logcmd(0);
logcmd(1,9);
logcmd(2,5,6);
:9
5 6
もちろん、intタイプのパラメータであれば、nではなく、 に したパラメータが であるなど、 に の を1つ して することもできます.void logcmd(int arg0,...)
{
va_list ap;
int i;
va_start(ap,arg0);// ap
for(i = arg0; i >= 0; i = va_arg(ap,int))//
printf("%d ",i);
va_end(ap);//
printf("
");
}
コール:logcmd(3,1,2,-1);
:3 1 2
ii、 タイプvoid argsChar(int n,...)
{
va_list args;
char *s;
va_start(args,n);
for(int i=0;i<n;i++){
s = va_arg(args,char*);
printf("%s
",s);
}
va_end(args);
}
:
argsChar(2,"hello","world");
:hello
world