1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#include <iostream>
#include <stdarg.h>
void func(double d, ...)
{
typedef char* pchar;
va_list args;
va_start(args, d);
std::cout << "func(" << d << ", ";
std::cout << (long)va_arg(args, long) << ", ";
std::cout << (short)va_arg(args, int) << ", "; // short passed as int
std::cout << (int)va_arg(args, int) << ", ";
std::cout << (const char*)va_arg(args, pchar) << ", ";
std::cout << (char)(int)va_arg(args, int) << ");"; // char passed as int
va_end(args);
}
int main()
{
char ch = 'A';
long l1 = 17;
long l2 = 80;
const char name[] = "Chairman Mo";
int i = -2;
func((double)3.2, (long)17, (short)80, (int)-2, "Chairman Mo", 'A');
return 0;
}
| |