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