标签:std va_arg put 头文件 获取 turn printf 可变 end
// 可变参头文件 <stdarg.h> // 主要依赖五个宏: va_list,va_start, va_arg, va_end, va_copy // 其中 va_copy 是 c99 新引进的 // va_list // 本质为char*指针,指向可变参的列表,用于声明变量 // eg. va_list ap; // va_start // 获取可变参数列表的第一个参数的地址, para为可变参数最左边的参数,即...之前的最后一个参数 // eg. va_start(ap, para) // va_arg // 获取可变参数的当前参数并将指针指向下一参数, type为当前参数的类型 // eg. va_arg(ap, type) // va_end // 与清空va_list的参数列表,与va_start配合使用 // eg. va_end(ap) // va_copy // 复制 va_list 的变量 // eg. va_copy(des, src) #include <stdio.h> #include <stdarg.h> void printint(int arg, ...) { int t; va_list ap; va_start(ap, arg); for(;;) { t = va_arg(ap, int); if(t == 0) break; printf("%d ", t); } printf("\n"); va_end(ap); } int main() { printint(1,2,3,4,5,0); printint(34,12,0); return 0; } // output: // 2 3 4 5 // 12
标签:std va_arg put 头文件 获取 turn printf 可变 end
原文地址:https://www.cnblogs.com/tongyishu/p/11690899.html