I am trying to program in C.
When I compile with the following arguments....
gcc -D_BSD_SOURCE -Wall -ansi -pedantic -g tokenizer.c FileOccur.c WordList.c wordstat.c indexer.c -o indexer
I get this from terminal as a response:
In file included from ../Headers/WordList.h:11,
from FileOccur.c:12:
../Headers/FileOccur.h:18: error: expected ‘)’ before ‘*’ token
../Headers/FileOccur.h:20: error: expected ‘)’ before ‘*’ token
In file included from ../Headers/WordList.h:11,
from WordList.c:11:
../Headers/FileOccur.h:18: error: expected ‘)’ before ‘*’ token
../Headers/FileOccur.h:20: error: expected ‘)’ before ‘*’ token
WordList.c: In function ‘insert_List’:
WordList.c:155: warning: implicit declaration of function ‘insert_FileOccur’
In file included from ../Headers/WordList.h:11,
from wordstat.c:11:
../Headers/FileOccur.h:18: error: expected ‘)’ before ‘*’ token
../Headers/FileOccur.h:20: error: expected ‘)’ before ‘*’ token
In file included from ../Headers/WordList.h:11,
from indexer.c:11:
../Headers/FileOccur.h:18: error: expected ‘)’ before ‘*’ token
../Headers/FileOccur.h:20: error: expected ‘)’ before ‘*’ token
Here is my FileOccur.h file:
/*
* FileOccur.h
* Includes list of all functions declared in FileOccur.c so that other source files
* can use them. Also defines the fields for the structs used for FileOccur.c
*/
#ifndef FILEOCCUR_H
#define FILEOCCUR_H
#include "../Headers/WordList.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct FileOccur FileOccur;
FileOccur * create_FileOccur(char * fileName);
void fprint_FileOccur(FILE * indexFile, FileOccur * currFileOccur);
void free_Occur(FileOccur * curr);
int insert_FileOccur(word * lCurr,char * fileName);
void print_FileOccur(FileOccur * currFileOccur);
int sort_TotalOccur(word * lCurr, FileOccur * prevFile, FileOccur * currFile);
struct FileOccur{ /*
* the FileOccur struct is used as a node to keep information about how many times an
* an item was found in a file, the file's name and the next file that has the same
* item in it, in this case a word
*
*/
char * fileName;
int occur;
FileOccur * next;
};
#endif
and here is my WordList.h file:
/*
* WordList.h
* Includes list of all functions declared in WordList.c so that other source files
* can use them. Also defines the fields for the structs used for WordList.c
*/
#ifndef WORDLIST_H
#define WORDLIST_H
#include <stdio.h>
#include <stdlib.h>
#include "FileOccur.h"
typedef struct word word;
typedef struct wordList list;
word * create_Word(char * spell, char * fileName);
void fprint_List(FILE * indexFile, list * words);
void free_List(list * words);
int insert_List(char * currString, list * words, char * fileName);
void print_List(list * words);
struct word{ /* the word struct used as a node to keep important information about each word including
* its occurences in the various files, the next word in the list, and the spelling of the
* current word.
*/
char * spell;
struct word * next;
FileOccur * totalOccur;
};
struct wordList{ /* my linked list that simply has a pointer to the first node*/
word * start;
};
#endif
Please let me know if you need any more information, thank you!