typedef struct point point_t;
struct point {
int x;
int y;
};
typedef struct point point_t;。 这是告诉编译器,我声明了一个结构体的名字【point_t】。后面在碰到使用结构体名字【point_t】(包含自己套用自己,但不能用成员,因为成员还没定义),都是指向同一个数据类型【struct point 】。至于该结构体【struct point 】的定义,你用之前定义了就行,否则编译器不知道数据类型的详细信息。