1 只是参数中使用了结构体名字的时候
这个时候不需要知道结构体的定义,只需要声明一下结构体就可以编译通过了。
比如struct A;,这样简单的声明一下,就可以编译通过了。因为这个时候编译器不需要知道该结构体的大小信息,它只需要知道这是一个什么结构体就行,
通过结构体的名字它就知道了这个结构体,因此编译通过。
2 创建结构体对象,即需要分配内存空间的时候
这个时候必须要知道这个结构体的定义,因为这样才能够给该结构体分配内存空间。如果只是简单的声明一下,就会报“an imcomplete type”的错误。