1 // It is important to have a definition *after* non-definition declaration. 2 typedef struct _Buffer Buffer; 3 struct _Buffer { 4 int a; 5 int b; 6 int c; 7 }; 8 9 typedef struct _AnonymousStruct AnonymousStruct; 10 struct _AnonymousStruct { 11 struct { 12 int x; 13 int y; 14 }; 15 }; 16 17 typedef union _UnionRecord UnionRecord; 18 union _UnionRecord { 19 int u: 2; 20 int v: 4; 21 }; 22