C++编程 –实现可变参数的函数

C++编程 – 实现可变参数的函数

flyfish

参数的类型和个数不确定时 使用省略号

使用的宏包括va_start、va_arg和va_end


#include "stdafx.h"
#include <stdarg.h>
#include <iostream>
#include <iomanip>


void fun(int nType,...)
{
	va_list va;
	va_start(va,nType);
	switch(nType)
	{
	case 0:
		{
			int nArg1=va_arg(va,int);
			int nArg2=va_arg(va,int);
			std::wcout<<nArg1<<" "<<nArg2<<std::endl;//测试语句
		}
		break;
	case 1:
		{
			int nArg1=va_arg(va,int);
			double dArg2=va_arg(va,double);
			std::wcout<<nArg1<<" "<<dArg2<<std::endl;//测试语句


		}
		break;
	default:
		break;


	}
	va_end(va);


}
int _tmain(int argc, _TCHAR* argv[])
{
	//两个参数都是整型
	fun(0,1,2);


	//一个参数是整型,一个是浮点型
	fun(1,1,2.3);
	return 0;
}


你可能感兴趣的:(可变参数)