2014-06-16 8 views
3

파일 압축 및 압축 풀기 프로그램을 만들려고합니다. 나는 연산 유형에 대해 이렇게 enum을 만들고 싶다 : typedef enum { COMPRESS, DECOMPRESS } operation;. 문제는 4 오류를 얻을 수 있습니다 :오류 C2365 : 열거 형 및 오류 2086 재정의 재정의

Error 1 error C2365: 'COMPRESS' : redefinition; previous definition was 'enumerator' 
Error 2 error C2086: 'COMPRESS' : redefinition 
Error 3 error C2365: 'DECOMPRESS' : redefinition; previous definition was 'enumerator' 
Error 4 error C2086: 'DECOMPRESS' : redefinition 

가 난 그냥 부울 값을 그런 식으로 열거를 만들었 기 때문에 무엇이 잘못하지 않는, 그리고 그것을 잘 작동합니다 : typedef enum { FALSE, TRUE } boolean;.

편집 :

#include <stdio.h> 
typedef enum { COMPRESS, DECOMPRESS } operation; 
void compress(FILE * file); 
void compressArchive(FILE * files[]); 
void decompress(FILE * file); 
void decompressArchive(FILE * files[]); 

및 n.m. 같이 나는 형식 정의가에있는 전체 .H 파일을 추가하도록 요청했다 다른 파일에 #include "huffman.h" (operation 유형 필요) 및 huffman.c, 그리고 main.cgeneral.h이 있습니다.

내가 뭘 잘못 했니?

감사합니다. 질문의 .H 파일을 가정

+1

이 토큰'COMPRESS'와'DECOMPRESS'라는 또 다른 열거에 사용되는 것 같습니다 '열거 자 '. –

+0

@RSahu 확인하기 위해 횡설수설로 바꿨지 만, 여전히 같은 문제 (CMPR, DCMPR)는 작동하지 않습니다. – shoham

+2

내 마법 크리스탈은 포함 된 파일이 포함 된 경비원이 없다고 말합니다. –

답변

1

로 변경, 'huffman.h'라고 다음

#ifndef __huffman_h__ 
#define __huffman_h__ 


#include <stdio.h> 
typedef enum { COMPRESS, DECOMPRESS } operation; 
void compress(FILE * file); 
void compressArchive(FILE * files[]); 
void decompress(FILE * file); 
void decompressArchive(FILE * files[]); 

#endif /* __huffman_h_ */ 
+0

이미 포함 된 경비가 있지만 #include 을 넣습니다. 그래서 나는 그것이 중요하지 않다고 생각한다. 감사. – shoham

+0

#ifndef __huffman_h__ 그렇지 않으면 포함이 처리되지 않습니다. – Pietro

+1

@ 피에트로, 내 부분에 큰 나쁜. 감사! –