在下面的表示中,
function myFunction () {
console.log('Hello World');
}
myFunction.greet = 'Hello JavaScript!';
console.log(Object.keys(myFunction));
编译器为第二个字段提供以下错误,但不是第三个字段,
struct Cat{
char *name;
struct Cat mother;
struct Cat *children;
};
如何理解这个错误?
答案 0 :(得分:8)
错误意味着您尝试将成员添加到尚未完全定义的类型的struct
,因此编译器无法知道其大小以确定对象布局。
在您的特定情况下,您尝试让struct Cat
将自己的完整对象作为成员(mother
字段)。类型定义中的那种无限递归当然是不可能的。
尽管如此,结构可以包含指向其他实例的指针。因此,如果您按如下方式更改定义,则它将是有效的strcut
:
struct Cat{
char *name;
struct Cat *mother;
struct Cat *children;
};