我尝试在C.构建ADT例如,虽然实施含int
类型的元素的层叠体。我将把typedef int item_t
放在头文件中,这样我就可以只更改一行来使用同一个堆栈来存储double
元素。冲突的类型的typedef
当我实现一个二叉树时,我使用相同的技巧。例如,我在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;
如下因为我的typedef item_t在node.h,编译器会抱怨。 conflicting types for ‘item_t’