我对这个错误感到有点困惑......
所以,在这段代码中,我有两个结构:
typedef struct
{
char *cMake;
model *testModel;
} make;
typedef struct
{
char * cModel;
} model;
现在,如果我编译,我会收到以下错误:
Error 1 error C2061: syntax error : identifier 'model'
Error 2 error C2059: syntax error : '}'
如果我对model *testModel
行发表评论,那么编译好......任何想法?谢谢!
答案 0 :(得分:3)
在model
之前声明make
类型:
typedef struct
{
char * cModel;
} model;
typedef struct
{
char *cMake;
model *testModel;
} make;
通常,标识符名称在完全声明之前不能使用。
答案 1 :(得分:1)
为了!
typedef struct
{
char * cModel;
} model;
typedef struct
{
char *cMake;
model *testModel;
} make;
您的编译器在使用它时不知道模型,因为它在代码中稍后定义。
答案 2 :(得分:1)
您应该在使用之前声明model
。在这种情况下,最简单的方法是简单地交换两个定义。
您也可以转发声明model
并保留相同的订单,但这里不需要。
答案 3 :(得分:0)
如果您首先定义模型,则效果很好。
typedef struct
{
char * cModel;
} model;
typedef struct
{
char *cMake;
model *testModel;
} make;