gpt4 book ai didi

c - 声明两个结构并在第二个结构中使用一个

转载 作者:行者123 更新时间:2023-11-30 17:34:15 24 4
gpt4 key购买 nike

我在两个不同的头文件中有两个结构,比方说:

header1.h:

#ifndef HEADER1_H
#define HEADER1_H

#include "header2.h"

typedef struct
{
Struct2 s;
} Struct1;
#endif

header2.h:

#ifndef HEADER2_H
#define HEADER2_H

#include "header1.h"

typedef struct
{
Struct1* s;
} Struct2;

#endif


如您所见,我在 Struct1 中声明了 Struct2,并在 Struct2 中声明了指向 Struct1 的指针。显然,当我尝试编译它时,它给了我一个错误:未知类型名称“Struct1”或“Struct2”。有什么办法可以做到这一点还是我必须改变我的观念?

最佳答案

如果你真的想这样做,你可以,你只需要在真正声明每个结构之前使用部分声明:

标题1.h

#ifndef _HEADER1_H
#define _HEADER1_H

#include "header2.h"

struct struct1
{
struct struct2 s2;
};
#endif

header2.h

#ifndef _HEADER2_H
#define _HEADER2_H

struct struct1;

struct struct2
{
struct struct1 *s1;
};

#endif

关于c - 声明两个结构并在第二个结构中使用一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23444830/

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