2012-10-14 6 views
1

코드 블록으로 프로젝트를 컴파일 할 때 오류가 있습니다. 내 문제는 열거 형 정의 및 구조체 정의에서 비롯됩니다.enum 및 struct 정의

그들은 헤더 파일에서 정의 된 봇입니다.이 파일은 .c 연관 파일에서 열거 형 및 구조체 만 사용했기 때문에 작동했습니다. 그러나 .h 파일을 다른 .c 파일에 포함 시키면 오류가 발생합니다. 여기에 몇 가지 코드가 있습니다.

maps.h

#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 

그래서 여기에 물건

#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, 내가 예에서 maps.h을 포함한다. game.c 또는 game.h이 오류가 있습니다;

오류 : '열거 속성'

의 중첩 된 재정 나는 그것을 얻지 않는다!

+0

추가'의 #pragma once' (내가 그것을 잘 도움을 생각) – elyashiv

+0

한 번 ouah의 솔루션으로 작동하는 것 같다의 #pragma! 고마워! – Math

+2

@microbe'#pragma once'는 이식성이 없으므로 이식성을 위해 헤더 가드를 사용하십시오. – ouah

답변