两个结构的顺序

Mel*_*oun 1 c c++ ansi

我有这两种结构......

typedef struct{
    MY_SECOND_STRUCT  s1;
}MY_FIRST_STRUCT;


typedef struct{
    int s1;
}MY_SECOND_STRUCT;
Run Code Online (Sandbox Code Playgroud)

我更喜欢这个订单,我不想切换它们.但编译器此刻不知道MY_SECOND_STRUCT,我收到错误

错误:'MY_SECOND_STRUCT'之前的预期说明符限定符列表

我试过在顶部添加声明

struct MY_SECOND_STRUCT;
Run Code Online (Sandbox Code Playgroud)

也将定义改为

typedef struct{
    struct MY_SECOND_STRUCT  s1;
}MY_FIRST_STRUCT;
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

Jam*_*lis 8

我更喜欢这个订单,我不想切换它们.

你必须切换它们.

如果MY_FIRST_STRUCT有一个类型的成员变量,MY_SECOND_STRUCTMY_SECOND_STRUCT必须在定义之前定义并完成(不仅仅是声明和不完整)MY_FIRST_STRUCT.