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

我正在尝试制作压缩和解压缩文件的程序.我想为这种操作类型制作一个这样的枚举: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(需要操作类型)和huffman.c以及main.c中.

我做错了什么?

谢谢.

最佳答案 假设问题中的.h文件名为’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_ */
点赞