struct my_node {
int id;
char name[32];
struct my_node *next;
};
typedef struct my_node Node;
struct my_node n;
Node n2;
typedef struct my_node {
int id;
char name[32];
struct my_node *next;
} Node;
Node n, n2;
Remark that my_node is a tag, not a type name.
Check this article: Tag vs. Type Names