0

次のデータ型宣言があります。

    typedef struct{
            int aa;
    }A;

    typedef struct{
        int bb;
    }B;

    typedef struct{

        union {
                A a;
                B b;
        }*D;

        int other;
    }myType;

    //Now I want to pass the array "D" and the variable "other" to a function 
    // that will use them to construct "myType"
    // How can I pass D as parameter? what whill be its type?

    //I want to have a function like the following with "?" filled. 

        callFunction(? d, int other){
            //construct "myType"
            myType typ;
            typ.D     = d;
            typ.other = other; 
        }

「mytype」構造体の外でユニオンを宣言してから、D*dを使用しようとしました。その場合、「mytype」構造体 でこのエラーが発生します

エラー:「D」の前に指定子-修飾子-リストが必要です</ p>

コードは次のとおりです。//構造体AとBは上記で宣言されています

    union {
            A a;
            B b;
    }D;

    typedef struct{            
            D* d;            
            int other;
    }myType;

どんな助けも認められるでしょう、

ありがとう。

4

1 に答える 1

1
typedef union {
   A a;
   B b;
} D;

typedef struct{
   D d;
   int other;
}myType;

callFunction(D *d, int other)

また

union D {
   A a;
   B b;
};

typedef struct{
   union D d;
   int other;
}myType;

callFunction(union D *d, int other)

の本体はcallFunction両方で同じになります。

{
            //construct "myType"
            myType typ;
            typ.D     = *d;
            typ.other = other; 
}
于 2012-10-07T10:22:34.923 に答える