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 32 33 34
|
#include <iostream>
#define DO_1(x) &x
#define DO_2(x) DO_1(x),DO_1(x)
#define DO_3(x) DO_2(x),DO_1(x)
#define DO_4(x) DO_3(x),DO_1(x)
#define DO_5(x) DO_4(x),DO_1(x)
#define DO_6(x) DO_5(x),DO_1(x)
#define DO_7(x) DO_6(x),DO_1(x)
#define DO_8(x) DO_7(x),DO_1(x)
#define DO_9(x) DO_8(x),DO_1(x)
#define DO_10(x) DO_9(x),DO_1(x)
#define DO_11(x) DO_10(x),DO_1(x)
#define DO_12(x) DO_11(x),DO_1(x)
#define DO_13(x) DO_12(x),DO_1(x)
#define DO_14(x) DO_13(x),DO_1(x)
#define DO_15(x) DO_14(x),DO_1(x)
#define DO_16(x) DO_15(x),DO_1(x)
#define DO_17(x) DO_16(x),DO_1(x)
#define DO_18(x) DO_17(x),DO_1(x)
#define DO_19(x) DO_18(x),DO_1(x)
using namespace std;
void test(int *a,...)
{
*a = 9;
std::cout<<*a<<std::endl;
}
int main()
{
int a = 0;
//test(DO_2(a)); <=> test(&a, &a);
test(DO_30(a));
return 0;
}
| |