错误C2365:重新定义枚举和错误2086重新定义

时间:2014-06-16 05:07:26

标签: c enums compiler-errors

我正在尝试制作一个压缩和解压缩文件的程序。我想为操作类型制作一个这样的枚举:typedef enum { COMPRESS, DECOMPRESS } operation;。 问题是,我得到4个错误:

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;

编辑: 我被要求添加typedef所在的整个.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[]);

和n.m.我在另一个文件#include "huffman.h"(需要general.h类型)和operation以及huffman.c中表示main.c

我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

假设问题中的.h文件被称为&#39; huffman.h&#39;,请将其更改为以下内容:

#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_ */