c - 结构内部结构

标签 c struct compiler-errors typedef

我必须创建一个人,每个人都应该有一个冰箱。这是最好的方法吗?如果是这样,我做错了什么?提前致谢。

typedef struct {
 int age;
 struct FRIDGE fridge;
} PERSON;

typedef struct {
 int number;
} FRIDGE;

FRIDGE fr;
fr.number=1;

PERSON me;
me.name=1;
me.fridge = fr;

这给了我以下错误:

error: field ‘fridge’ has incomplete type

最佳答案

struct FRIDGEFRIDGE 不同。

您需要在其他结构中使用 FRIDGE 类型。

typedef struct {
 int age;
 FRIDGE fridge;
} PERSON;

或者将你的冰箱定义为 struct FRIDGE

struct FRIDGE {
 int number;
};

此外,在使用之前可能必须定义该结构(例如,在人的上方)。

关于c - 结构内部结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14040612/

相关文章:

c - pipe()、fork() 和 sleep()

c - 当以任意顺序给出三个音符时如何解析和弦。数学

c - #QNANO 在 C 中表示或表示什么?

c - qsort 不会对动态分配的结构数组进行排序

iphone - 访问未知的setter方法

c++ - 程序不保存输入的条目? (C++)

c - winsock recv 函数在相关数据之间接收垃圾

c++ - 对于 malloc() 失败是否有等效的 set_new_handler()?

c - 'names' 字符串在使用 'Symbol' 结构进行 qsort 后消失

c++ - 对vtable的 undefined reference -C++链接错误