1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
|
#include <stdio.h> #include <string.h> #include <stdarg.h> int demo( char* msg, ... ) { va_list argp; //1、va_list变量是指向参数的指针; char* para; va_start( argp, msg ); //2、va_start(argp,msg)获取可变参数列表的第一个参数地址,此例即msg参数的地址; //argp是va_list指针,msg是可变参数最左边的参数; while (1) { para = va_arg( argp, char* ); //3、va_arg(argp,char*);获取可变参数的当前参数,并将指针指向下一个参数; //argp是va_list指针,char*是当前参数类型; if ( strcmp( para, "") == 0 ) break; printf( "Parameter is:%s\n", para ); } va_end( argp ); //4、清空va_list可变参数列表,argp是va_list指针。 return 0; } int main( void ) { demo("DEMO", "This", "is", "a", "demo!", ""); return 0; }
|