我嘗試在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’