1 #define defStruct(PREFIX,X) struct PREFIX##X
2 #define begin {
3 #define defField(PREFIX,T, F) T PREFIX##F;
4 #define endf ;
5 #define ends };
6 
7 #define mydefs(X) defStruct(my_,X)
8 #define mydeff(T,Y) defField(my_,T,Y)
9 
10 defStruct(your_,point) begin
11   defField(your_,int, x) endf
12   defField(your_,int, y) endf
13 ends
14 
15 mydefs(point3d) begin
16   mydeff(int, x) endf
17   mydeff(int, y) endf
18   mydeff(int, z) endf
19 ends
20