不完全数组类型在著名Struct hack使用,并且因为C99标准他们被允许。在c99标准之前,这些都是不允许的。我在看标准,我无法得出结论: 是否允许在结构之外使用不完整的数组类型?(我在标准C99中找到的所有参考文献:6.7.2.1.15都将它作为最后一个元素结构)。 那么下面的程序是否允许按照标准进行编译?我的问题 int array[];
int main(){return 0;}
如何在C++中实现这样的想法而不进入“使用不完整类型”的麻烦? class A {
/*(...) some fields and methods here. */
class B {
/*(...) some fields and methods here. */
friend B A::fun();
};
B fun();
};