1 typedef struct opaque_struct * opaque_struct_pointer_type; 2 3 typedef struct public_struct_type *public_struct_pointer_type; 4 typedef struct public_struct_type2 *public_struct_pointer_type2; 5 6 typedef void (*FuncPointerType0) (public_struct_pointer_type, 7 public_struct_pointer_type); 8 9 typedef void (*FuncPointerType1) (public_struct_pointer_type, int); 10 11 typedef struct public_struct_type2 12 { 13 FuncPointerType0 m0; 14 FuncPointerType1 m1; 15 } public_struct_type2; 16 17 typedef struct public_struct_type 18 { 19 opaque_struct_pointer_type m0; 20 public_struct_type2 *m1; 21 } public_struct_type; 22 23 void foo(public_struct_pointer_type p1); 24 25 void bar(second_public_struct_pointer_type p1, 26 second_opaque_struct_pointer_type p2); 27