在C语言编程中有时会遇到一些参数个数可变的函数,例如printf(),scanf()函数,其函数原型为:
int printf(const char format,…),int scanf(const char format,…);
它除了有一个参数format固定以外,后面跟着的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式: printf(“%d”,i); printf(“%d,%c”,i,j);
下面可以自己实现一个可变参数的实例:123456789101112void HelloWorld::testParam(int mode, ...) { va_list ap; va_start(ap, mode); int arg; while(true){ arg = va_arg(ap, int); if (arg == -1) break; CCLOG("mode:%d", arg); } va_end(ap);}