gpt4 book ai didi

c - 以任意顺序在结构体内部使用结构体 (C)

转载 作者:行者123 更新时间:2023-11-30 15:53:20 25 4
gpt4 key购买 nike

我有一个非常简单的问题:我想在另一个结构体中使用结构体,但我希望能够按照我想要的任何顺序定义它们。像这样的事情:

// User type definition
typedef struct type1{
int i;
type2 t;
};
// User type definition
typedef struct type2{
int i;
type3 t;
};
// User type definition
typedef struct type3{
int i;
};

我该怎么做?

最佳答案

实现这一点的唯一方法是使用指向结构的指针而不是静态成员:

typedef struct type1 {
int i;
struct type2 *t;
} type1;
// User type definition
typedef struct type2 {
int i;
struct type3 *t;
} type2;
// User type definition
typedef struct type3 {
int i;
} type3;

这样做的原因是编译器必须知道结构体有多大。如果您使用指针,编译器需要知道的是该结构类型存在,因为给定体系结构上的指针类型在编译时大小已知

关于c - 以任意顺序在结构体内部使用结构体 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com