gpt4 book ai didi

c - 将两个别名传递给 `typedef struct` 意味着什么?

转载 作者:行者123 更新时间:2023-12-02 19:43:04 24 4
gpt4 key购买 nike

下面代码中的*B是什么意思?我理解 typedef 和 struct 之间的混合。然而,这个*B很奇怪。

typedef struct Something
{
...
}
A, *B;

我看到多个问题询问有关将 typedefstruct 混合使用的问题,但没有一个问题谈到这种双重定义。

最佳答案

这是 typedef 关键字的一个不太常见的用例,它允许您在一行中定义两个或多个类型别名。在这里,这说的是

  • 创建一个名为 A 的别名,代表 struct 本身,并且
  • 创建一个名为 B 的别名,表示指向 struct 的指针。

从这个意义上说,它类似于编写类似的内容

int A, *B;

这里声明了一个名为A的整数和一个指向名为B的整数的指针。这里涉及 * 的语法与 typedef 语句中的语法非常相似,只不过它不是引入变量,而是引入类型。

另一种看待这一点的方式:这相当于将事物分成两个单独的语句:

typedef struct {
...
} A;

typedef A* B;

这里,第一个表示“A 现在引用此 struct 类型,而 B 现在引用指向 的指针>A。”

关于c - 将两个别名传递给 `typedef struct` 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56727925/

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