-1

私が得ているこのエラーについて少し混乱しました...

したがって、このコード スニペットには 2 つの構造体があります。

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付けると、正常にコンパイルされます...何かアイデアはありますか? ありがとうございました !

4

4 に答える 4

3

modelの前に型を宣言make:

typedef struct 
{
    char * cModel;    
} model;

typedef struct 
{
    char  *cMake;   
    model *testModel;
} make;

通常、識別子名は、完全に宣言されるまで使用できません。

于 2013-08-08T08:59:15.210 に答える
1

注文!

typedef struct 
{
    char * cModel;    
} model;

typedef struct 
{
    char  *cMake;   
    model *testModel;
} make;

モデルはコードの後半で定義されているため、コンパイラは使用時にモデルを認識しません。

于 2013-08-08T08:59:07.110 に答える
1

model使用する前に宣言する必要があります。この場合の最も簡単な方法は、単純に 2 つの定義を交換することです。

前方宣言modelして順序を同じままにすることもできますが、ここでは不要です。

于 2013-08-08T08:59:23.557 に答える
0

最初にモデルを定義すると、うまく機能します。

   typedef struct
{
    char * cModel;
} model;

typedef struct
{
    char  *cMake;
    model *testModel;
} make;
于 2013-08-08T09:01:01.193 に答える