In the question Why should we typedef a struct so often in C?, unwind answered that:
In this latter case, you cannot return the Point by value, sinc
What that post means is: If you see the header
typedef struct _Point Point; Point * point_new(int x, int y);
then you don't know the implementation details of Point.
Point