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