В настоящее время я получаю 2 ошибки при попытке скомпилировать мои файлы с помощью make-файла.
Появляются следующие ошибки, и я не уверен, как их исправить:
- два или более типов данных в спецификаторах объявлений
- пустое объявление со спецификатором класса хранения не переименовывает тег
относительно этой строки:
typedef enum __bool__ bool;
Коддля моего файла заголовка, предоставленного школой для моей оценки, являются следующие:
#ifndef _dict_h
#define _dict_h
#define VECSIZE ('z'-'a' + 1)
typedef char *word;
enum __bool__ { FALSE, TRUE };
typedef enum __bool__ bool;
typedef struct __tnode__ *Dict, TNode;
struct __tnode__ {
Dict cvec[VECSIZE];
bool eow;
};
void newdict(Dict *dp);
void addword (const Dict r, const word w);
bool checkword (const Dict r, const word w);
void delword (const Dict r, const word w);
И для моего файла C, который я сейчас пишу:
void newdict (Dict *dp) {
*dp = NULL;
dp = (Dict *)malloc(sizeof(Dict));
if (dp) {
int i;
(*dp)->eow = FALSE;
for (i = 0; i < VECSIZE; i++) {
(*dp)->cvec[i] = NULL;
}
}
}
void addword (const Dict r, const word w) {
int level;
int length = strlen(w);
int index;
Dict pCrawl = r;
for (level = 0; level < length; level++) {
index = CHAR_TO_INDEX(w[level]);
if (!pCrawl->cvec[index]) {
newdict(&(pCrawl->cvec[index]));
}
pCrawl = pCrawl->cvec[index];
}
pCrawl->eow = TRUE;
}
bool checkword (const Dict r, const word w) {
int level;
int length = strlen(w);
int index;
Dict pCrawl = r;
for (level = 0; level < length; level++) {
index = CHAR_TO_INDEX(w[level]);
if (!pCrawl->cvec[index]) {
return false;
}
pCrawl = pCrawl->cvec[index];
}
return(pCrawl != NULL && pCrawl->eow);
}
Я относительноновичок в C, поэтому любые советы, связанные или не связанные с ошибками, будут с благодарностью.Заранее спасибо.