gpt4 book ai didi

您可以对先前的 typedef 语句进行 typedef 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:51 27 4
gpt4 key购买 nike

我被分配去处理一些代码,但我事先得到了一部分。它包括这部分代码:

typedef int ElementType;

struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;

struct Node {
ElementType Element;
Position Next;
Position Previous;
};

我的理解是,

  1. 我们现在可以编写 ElementType 来将值定义为整数,而不是编写 int。 (困惑 #1)
  2. 我们已经定义了一个名为 Node 的结构。 (我不确定为什么这里没有定义它)。
  3. 我们 typedef PtrToNode 作为一个名为 Node 的结构的指针。
  4. 我们 typedef 列为 PtrToNote。这应该意味着 List 也是一个指向名为 Node 的结构的指针。这个指针叫做列表。 (困惑 #2)
  5. 类似于数字 4,但这个称为 Position。
  6. 我们定义了结构的建立方式。在这种情况下,根据我们之前的定义,Element 应该是一个 int。 Next 和 Previous 应该是 Position 的指针?但是,如果我用 List 更改 Position,这将如何影响代码?

有人可以向我解释第 1、2、4 和 6 点吗?我是否正确理解了代码?

最佳答案

Instead of writing int we now can write ElementType to define a value as an integer. (Confusion #1)

这是正确的 - 例如:

int a = 50;

现在相当于

ElementType a = 50;

We have defined a structure called Node. (I am unsure why it wasn't defined here).

这是(向前)声明一个名为 Node 的结构,而不是定义一个结构

We typedef PtrToNode as a pointer of the structure called Node.

你这里的理解也是正确的。因此以下是等价的:

struct Node *x;
PtrToNode x;

We typedef List as PtrToNote. Which should mean that List is also a pointer to the structure called Node. This pointer is called List. (Confusion #2)

ListPtrToNode 代表相同的类型 - 以下示例都做同样的事情:

struct Node *x;
PtrToNode x;
List x;

Similar to number 4, but this one is called Position.

正确。

We define how the structure is going to be set up. In this case Element is supposed to be an int, as per our previous definition. Next and Previous are supposed to be pointers of Position? However, if I were to change Position with List, how would this affect the code?

这是定义结构 Node。将 Position 替换为 List 不会对代码产生任何影响。两种类型兼容。

关于您可以对先前的 typedef 语句进行 typedef 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58360229/

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