I have the following two header files:
player.h
#ifndef _PLAYER_H_
#define _PLAYER_H_
#include "map.h"
typedef struct{
char* name;
int x;
int y;
int keyMapping;
char symbol;
}player;
void move(map map, char* move, player player);
void setKeyMapping(int keyMap, player player);
void initPlr(char* name, int x, int y, player player);
#endif
and map.h
#ifndef _MAP_H_
#define _MAP_H_
#include "player.h"
typedef struct{
char** levelData;
int width;
int height;
}map;
void init(map* map,int height, int width);
void print_map(map map, player player);
void resume(const char *resFrom, map map);
void save(const char *saveTo, map map);
#endif
When I run the make file, I get the following error:
player.h:10:11: error: unknown type name ‘map’
void move(map map, int move, player player);
I am relatively new programmer (in C that is) and I came here is hopes that you guys could help me figure out why the header files aren't seeing each other even though I included them. The compiler I am using is gcc, and I checked to make sure that both of the header files are included in their partner C files.
I also checked out these three posts:
Include a header in another header file
Include headers in header file?
Should I use #include in headers?
EDIT:
If I edit the map.h file as I have above (I added a player parameter to print_map and an include statement) the compiler throws this error:
player.h:12:11: error: unknown type name ‘map’
void move(map map, char* move, player player);