I\'ve just started learning C with a professional Java background and some (if no too much) C++ knowledge, and I was astonished that this doesn\'t work in C:
str
struct Point is the type just like union Foo would be a type. You can use typedef to alias it to another name - typedef struct Point Point;.
struct Point
union Foo
typedef
typedef struct Point Point;