gpt4 book ai didi

c - 没有标签名称的另一个结构内部的结构是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 14:59:51 25 4
gpt4 key购买 nike

我刚看到一个代码片段说:-

struct a {
int mem1;
char mem2;

struct {
int inner_mem1;
int inner_mem2;
};
};

而且我发现使用内部结构成员的代码片段直接使用外部结构的变量名!!!例如:

struct a *avar;
....
avar->inner_mem1

这是否合法,但是代码正在编译并且工作正常!。这样使用它的目的是什么?有什么具体的场景吗?

请告诉我您的想法。

最佳答案

这称为“匿名结构”:

An unnamed member of structure type with no tag is called an anonymous structure; an unnamed member of union type with no tag is called an anonymous union. The members of an anonymous structure or union are considered to be members of the containing structure or union. This applies recursively if the containing structure or union is also anonymous.

这不是当前 C 标准 C99 的一部分,但预计它将成为即将到来的标准的一部分(上面的引文)。此外,许多编译器已经支持此功能作为扩展。

关于c - 没有标签名称的另一个结构内部的结构是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793270/

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