编译错误,"使用未定义的结构"

Kai*_*aan 0 c++ struct

我想向前声明一个struct的部分,所以首先显示"package"结构.我收到"使用undefined struct"的错误,其中"Header"在"Package"中声明.当然,在抛出此错误之前,编译器(VS2010)会扫描头文件中的定义吗?

struct Header;

struct Package
{
    Header header;             <-- "uses undefined struct"

};

struct Header
{
    uint32_t Signature;
    uint8_t MajorVersion;
    uint8_t MinorVersion;
};
Run Code Online (Sandbox Code Playgroud)

谢谢

K-b*_*llo 8

我收到"使用undefined struct"的错误,其中"Header"在"Package"中声明.

你不能声明一个不完整类型的成员,因为编译器不知道它有多大以及它应该为它保留多少空间(除其他外).

当然,在抛出此错误之前,编译器(VS2010)会扫描头文件中的定义吗?

不,是什么让你这么想?

  • 只是为了完整性:虽然你不能成为不完整类型的成员,但你可以指向它. (3认同)