gpt4 book ai didi

c - 在结构体内部使用结构体

转载 作者:行者123 更新时间:2023-11-30 20:48:42 27 4
gpt4 key购买 nike

如何使用结构体 A 修改结构体 B 内的数据。结构体 B 没有名称,只有类型。

struct A {
struct B;
};

struct B {
int data;
};

由于这是用于学校的,因此我无法更改上面的代码。我只能用它。我在我的 main 中尝试了类似的方法,但它不起作用

int main (){
struct A myStruct;
myStruct.B.data = 3;
return 0;
}

提前致谢。

编辑:抱歉,我只是想尽快发布此内容,这就是为什么我没有使用正确的 c 语法发布此内容。无论如何,都是我的问题不够清楚。

我知道我的 main 不起作用,我只是想知道是否可以访问结构体 B 内的数据,而无需像上面那样在结构体 A 内声明它的名称。这是老师给我的代码,所以我不想修改结构,因为我想也许她希望我们集思广益,找到一种按照她编写的方式使用它的方法。

iharob 解释它的方式完美地工作,在结构 A 之前声明结构 B,并实际为结构 B 命名。

如果不给结构体 B 命名,是否根本无法访问该数据?

最佳答案

您发布的代码甚至不是 C 代码,它无法编译。

您的主要错误是您不需要使用struct名称来访问成员。这个应该不错

struct B 
{
int data;
};

struct A
{
struct B member;
};

int main(void)
{
struct A instance;
instance.member.data = 3;
return 0;
}

我假设您发布了一些示例代码,请不要这样做。发布有问题的实际代码。您发布的代码完全无效,因为某些定义缺少类型,如果不使用中的struct,则无法声明struct。除非你typedef它。所以请下次发布实际代码。

并且不要使用 struct 成员构建如此复杂的 struct,除非您真的知道自己在做什么。

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

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