结构中的未知类型
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;
试试这个
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;
};
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;
试试这个
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;
};