以下是头文件的代码,想问下用“typedef void SeqList”这样写是啥意思呢?把“SeqLis”重命名为空类型?网上看了下是说什么封装,就是在 .c 文件下不能随意给SeqList定义的结构体里面 的对象进行赋值。求大神赐教!
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
typedef void SeqList;
typedef void SeqListNode;
SeqList* SeqList_Create(int capacity);
void SeqList_Destroy(SeqList* list);
void SeqList_Clear(SeqList* list);
int SeqList_Length(SeqList* list);
int SeqList_Capacity(SeqList* list);
int SeqList_Insert(SeqList* list, SeqListNode* node, int pos);
SeqListNode* SeqList_Get(SeqList* list, int pos);
SeqListNode* SeqList_Delete(SeqList* list, int pos);
#endif
以下是.c文件的一部分代码。如果加上一句list ->length=0,程序则会报错,报错原因就是说在头文件里面用void对SeqListNode进行了封装。这是什么意思呢?
int main(int argc, char *argv[])
{
SeqList* list = SeqList_Create(5);
int i = 0;
int j = 1;
int k = 2;
int x = 3;
int y = 4;
int z = 5;
int index = 0;