gpt4 book ai didi

typedef 的类型冲突

转载 作者:行者123 更新时间:2023-11-30 15:52:54 24 4
gpt4 key购买 nike

我尝试用 C 语言构建 ADT。例如,在实现包含 int 类型元素的堆栈时。我会将 typedef int item_t 放入头文件中,这样我只需更改一行即可使用相同的堆栈来存储 double 元素。

当我实现二叉树时,我使用了相同的技巧。例如,我在 node.h 中声明一个节点,如下

typedef struct node_t *link_t;
typedef int item_t;
struct node_t {
item_t item;
link_t left;
link_t right;
};

现在,我在 node.h 中使用 typedef int item_t。如果我想使用堆栈来存储在node.h中声明的link_t类型的元素,并将它们视为item_t。我该怎么办?

我不能只在 stack.h 中执行以下操作

#include "node.h"
typedef link_t item_t;

因为我在node.h中有typedef item_t,编译器会提示。 “item_t”的类型冲突

最佳答案

用 C 语言制作 ADT 既简单又有趣,而且是一次很好的学习体验。但是,您无法使用任何基于 C 的语言创建一个真正通用的 ADT,该 ADT 可重用于不同的 ADT,您必须为每个 ADT 制作一个单独的结构。

关于typedef 的类型冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027384/

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