I\'m not a beginner, I\'m very familiar with the following idiom:
typedef struct Foo_ Foo;// I know typedef struct Foo Foo is fine, I\'m just trying to make
Under certain circumstances, it is valid to use a struct ... type before it is declared. It is a so-called "incomplete type" then.
struct ...
For example, it is valid to declare a variable as a pointer to an "incomplete" struct, as well as (as you can see) a typedef.
typedef