我定义了一个具有两个参数的宏,如下所示:
#define DO_LIST_HEADER(Titem,MAX) typedef struct {\
int count;\
Titem array[MAX];\
} TOrderedList##Titem;\
\
void initialize_list##Titem(TOrderedList *list);\
int insert_item##Titem(TOrderedList *list, Titem item);\
int retrieve_ith##Titem(const TOrderedList *list, int i, Titem *item);\
int number_of_items##Titem(const TOrderedList *list);\
int list_empty##Titem(const TOrderedList *list);
这是在一个头文件中,当我尝试从另一个.c
文件中“调用”这个宏时,包括其中的头文件。
typedef Ttime Titem;
DO_LIST_HEADER(Ttime,10)
在这里,我收到一条错误消息incomplete type not allowed
。
为什么我会收到这种类型的错误?
DO_LIST_HEADER
宏包含包含Ttime
作为参数的函数原型。