6
struct mystruct
{
    int   i;
    double f;
} ;

typedef mystruct myotherstruct;

//the other .cpp file
struct mystruct;  //OK,this is a correct forward declaration.
struct myotherstruct; // error C2371(in vc2k8): 'myotherstruct' : redefinition; different basic types

こんにちは、みんな。myotherstructを前方宣言できないのはなぜですか?

4

2 に答える 2

1

typedefedの前方宣言typedefsなしに前方宣言することはできません。struct最初に を前方宣言してstructから、typedef

struct mystruct;
typedef mystruct myotherstruct;
于 2012-07-19T10:44:59.000 に答える
1

myotherstruct識別子はstructタグではなく、それ自体が型名です。structキーワードなしで使用します。struct一度定義すると、その名前をタグに再利用することはできません。あなたの例では、myotherstructタイプを前方宣言していませんstruct。タグmyotherstructでa を前方宣言しmyotherstructていますtypedef

于 2012-07-19T10:45:41.967 に答える