C语言变参函数的实现

VS2015

#include 
#include
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(), __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;
}


你可能感兴趣的:(windows编程)