一道c语言的问题 很短 耗不了多少时间

typedef struct _even_box {
int number;
odd_box *next;
} even_box;

typedef struct _odd_box {
int number;
even_box *next;
} odd_box;
不能编译
互相指向该怎么办解决

struct odd_box;

typedef struct even_box {
    int number;
    odd_box *next;
} even_box;

typedef struct odd_box {
    int number;
    even_box *next;
} odd_box;

在前面加_odd_box的声明
struct odd_box;