【发布时间】:2015-05-01 05:31:43
【问题描述】:
这个错误似乎很容易修复,但我一直在尝试,但没有任何线索。
所以我有三个文件:
symtable.h:
typedef struct symbolTable *SymTable_T;
symtablelist.c:
#include "symtable.h"
struct Node{
char* key;
void* value;
struct Node* next;
};
struct symbolTable{
struct Node* head;
int length;
};
SymTable_T SymTable_new(void){
/* code */
}
还有main.c:
#include "symtable.h"
int main(int argc, const char * argv[]) {
// insert code here...
SymTable_T emptyTable = SymTable_new();
emptyTable->length = 3; <------- ERROR
return 0;
}
我收到错误:“struct symbolTable”类型的定义不完整
谁能给我一个提示?
我在源文件中声明我的结构的原因是我将为头文件提供另一个实现。那么除了移动我的结构声明之外,还有其他方法可以修复我的错误吗?
【问题讨论】:
-
建议将结构定义放在头文件中(并消除结构的 typedef),然后在您想要声明结构实例的任何位置包含该头文件。