结构中的未知类型

时间:2016-02-27 22:07:12

标签: c 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。

编辑:要清楚。我得到了结构的“未知类型”异常。

2 个答案:

答案 0 :(得分:4)

为了在声明中使用类型,您需要在使用之前定义声明。唯一的例外是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.

答案 1 :(得分:2)

试试这个

send( :hello, "gentle", "readers")