避免重新定义C中的枚举

时间:2017-07-04 06:31:57

标签: c enums

我需要解释如何使这项工作(如果可能的话)。

所以,在我的头文件中,我有一个BOOL类型的枚举声明,其中包含一些我应该实现的例程。

#ifndef _TABLE_H
#define _TABLE_H

typedef enum BOOL { false, true } Boolean;

#endif //_TABLE_H

我在一个文件中使用这个接口,该文件使用bool类型定义了各种例程(这次不是布尔值)

typedef enum BOOL { false, true } bool;

我希望能够同时使用它们,我该怎么做?

1 个答案:

答案 0 :(得分:0)

在您提供的代码中,您要重新定义BOOL。因此,为避免重新定义BOOL,请在向bool提供定义时执行以下操作:

typedef enum BOOL bool;

所以你有以下几点:

File1.h

#ifndef _TABLE_H
#define _TABLE_H

typedef enum BOOL { false, true } Boolean;

#endif //_TABLE_H

File2.h

#include <File1.h>
...
typedef enum BOOL bool;
...

在此,您要在BOOL中提供File1.h的定义。在File2.h中,您只是提供别名 注意:如果您只是在File1.h中提供减速并将BOOL的定义放在另一个文件中,那会更好。