为什么以下内容是合法的:
typedef struct a aType;
struct a
{
int x;
aType *b;
};
以及以下违法行为:
void main()
{
typedef struct a aType;
aType someVariable;
struct a
{
int x;
aType *b;
};
}
我只是很好奇,因为在每种情况下它都是前向引用,据我所知,至少对于函数和变量来说,前向引用是不合法的。
另外,这个问题的答案对于 C++ 来说也是一样的吗?
您可以创建指向不完整类型的指针,因为指针对象的大小不取决于所指向类型的大小。指向不同的指针struct
无论类型的大小如何,类型都具有相同的大小和表示形式struct
自行键入。
您无权创建实例不完整类型,因为类型的大小未知。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)