结构中的未知类型

Unknown type in structure

typedef struct
{
    char name[3];
    bool initial_state;
    bool final_state;
    STATUSTRANSITION *transitions;
    int numberTransitions;
} STATE;

typedef struct
{
    char c;
    STATE final;
} STATUSTRANSITION;

STATE 不知道 STATUSTRANSITION。我该如何解决这个问题?当我将 STATUSTRANSITION 置于 STATE 之上时,由于 STATUSTRANSITION 具有 STATE,因此我遇到了与 STATUSTRANSITION 相同的问题。

编辑:为了清楚起见。我得到结构的 'Unknown type' 异常。

为了在声明中使用类型,您需要在使用前定义声明。唯一的例外是正在定义的 struct 本身的名称:您可以使用它的标记来声明结构本身内部的字段。

在您的情况下,您应该提供 STATUSTRANSITION 的前向声明,如下所示:

struct STATUSTRANSITION;

typedef struct 
{
    char name[3];
    bool initial_state;
    bool final_state;
    struct STATUSTRANSITION *transitions;
    int numberTransitions;
} STATE;

typedef struct STATUSTRANSITION
{
    char c;
    STATE final;
} STATUSTRANSITION;

Demo.

试试这个

typedef struct statustransition STATUSTRANSITION;

typedef struct
{
    char name[3];
    bool initial_state;
    bool final_state;
    STATUSTRANSITION *transitions;
    int numberTransitions;
} STATE;

struct statustransition
{
    char c;
    STATE final;
};