Эта ошибка кажется очень простой в устранении, но я пытался и не имел понятия.C: Неполное определение типа struct
Так у меня есть три файла:
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;
}
I'm getting error: Incomplete definition of type "struct symbolTable"
Может кто-нибудь, пожалуйста, дайте мне подсказку?
Причина, по которой я объявляю свою структуру в исходном файле, заключается в том, что у меня будет другая реализация для файла заголовка. так есть ли другой способ исправить мою ошибку при перемещении моей объявления структуры?
Предлагаем разместить определения структуры в файле заголовка (и исключить typedef структуры), а затем включить этот заголовочный файл, если вы хотите объявить экземпляр структуры. – user3629249