C语言变参函数的实现

来源:互联网 发布:蓝牙4.0测试软件下载 编辑:程序博客网 时间:2024/04/27 18:28

VS2015

#include<stdio.h> #include<stdarg.h>void test(UINT para, ...) {//变参函数的实现方式  调用方式:test(7, 1, 2, 3, 4, 5, 6, 7); 我用第一个参数表示剩余参数个数了va_list vl;//声明一个指向各参数的指针//typedef char* va_list;va_start(vl, para);//初始化该指针//#define va_start __crt_va_start//#define __crt_va_start(ap, x) ((void)(__vcrt_va_start_verify_argument_type<decltype(x)>(), __crt_va_start_a(ap, x)))UINT N = para;while (N--) {printf("%d\n", va_arg(vl, UINT));//指向下一个参数//#define va_arg   __crt_va_arg//#define __crt_va_arg(ap, t)     (*(t*)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)))}return;}


原创粉丝点击