gpt4 book ai didi

C语言与队列/链表

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:18 28 4
gpt4 key购买 nike

有人可以解释下面的代码吗?我是 C 的新手,正在努力弄清楚。为什么我们最后有 queueNodeT?

typedef char queueElementT;

typedef struct queueNodeTag {
queueElementT element;
struct queueNodeTag *next;
} queueNodeT;

最佳答案

queueNodeT 是 typedef 语句试图创建的类型的名称。

另一种指定方式是:

struct queueNodeTag {
...
};
typedef struct queueNodeTag queueNodeT;

在 C(相对于 C++)中,“struct queueNodeTag”只是定义了一个名为“queueNodeTag”的结构。在 C++ 中 [你应该知道],这也将定义一个名为“queueNodeTag”的类型

创建指向结构的指针变量时,使用起来稍微短一些:

queueNodeT *my_pointer;

比:

struct queueNodeTag *my_pointer;

尾随的“T”只是一种编码约定,表示它是类型名称而不是变量。你可以使用其他人。我的是:

struct mystructname {
...
};
typedef struct mystructname mystructname_t;
typedef mystructname_t *mystructname_p;

使用 mystructname_p,您可以更改:

struct mystructname *my_pointer;
mystructname_t *my_pointer;

进入:

mystructname_p my_pointer;

“_t”相当常见。 “_p”是我的约定,但是,我相信其他约定将指向类型的指针定义为“p ”,例如“pMystructName”。我更喜欢为此使用后缀 [和“蛇形”表示法,而不是您示例中的“驼峰”表示法]。

关于C语言与队列/链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812942/

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