I would like to create a struct with pointer to the property of the same type.
Ideally I would like to go for something like this, but this causes compilation error:
typedef struct {
int data;
Node *next;
} Node;
Solution I'm going for in this scenerio is:
typedef struct Node_s {
int data;
struct Node_s *next;
} Node_t;
Is it a valid approach or could it cause any obvious issues?
It is a valid and idiomatic method of declaring self-referencing structures in C.
You don't have to introduce different names for the tag and the typedef name, the following is just as good:
typedef struct Node {
int data;
struct Node *next;
} Node;
There is no name clash because these names live in different namespaces.
Another valid method is like this:
typedef struct Node Node;
struct Node {
int data;
Node *next;
};