コードブロックを使用してプロジェクトをコンパイルするときにエラーが発生します。私の問題は、列挙型の定義と構造体の定義に起因しています。
それらはヘッダーファイルでボット定義されており、.c関連ファイルでそれらの列挙型と構造体のみを使用していたため機能しました。しかし、.hファイルを別の.cファイルにインクルードすると、エラーが発生します。ここにいくつかのコードがあります。
maps.h
#include <stdlib.h>
#include <stdio.h>
enum Property { BACKGROUND, FOREGROUND, BLOCK, EVENT };
typedef struct {
char map_name[50];
int width;
int height;
char* map_struct;
}rpgMap;
char getTileProperty(rpgMap map, int x, int y, int property);
maps.c
#include "maps.h"
char getTileProperty(rpgMap map, int x, int y, int property){ // Works
char value = NULL;
value = map.map_struct[(((y*(map.width-1))+y+x) * 4 ) + property];
return value;
}
rpgMap loadMap(unsigned char* map){
rpgMap Map;
//....
//some code
//...
return Map;
}
// This works until i include maps.h in another .c file
たとえば、maps.hを含めると、次のようになります。game.cまたはgame.hiにはこのエラーがあります。
エラー:「列挙型プロパティ」のネストされた再定義
理解できません !