[英]Avoiding redefinition of enums in C
我需要有關如何進行這項工作的說明(如果可能的話)。
因此,在我的頭文件中,我有一個BOOL類型的枚舉聲明以及應該實現的一些例程。
#ifndef _TABLE_H
#define _TABLE_H
typedef enum BOOL { false, true } Boolean;
#endif //_TABLE_H
我在文件中使用此接口,該文件使用bool類型定義了各種例程(這次不是布爾值)
typedef enum BOOL { false, true } bool;
我希望能夠同時使用兩者,我該怎么做?
在提供的代碼中,您正在重新定義BOOL
。 因此,為避免重新定義BOOL
,請在為bool
提供定義時執行以下操作:
typedef enum BOOL bool;
因此,您有以下內容:
文件1.h
#ifndef _TABLE_H
#define _TABLE_H
typedef enum BOOL { false, true } Boolean;
#endif //_TABLE_H
文件2.h
#include <File1.h>
...
typedef enum BOOL bool;
...
在這里,您將在File1.h
中提供BOOL
定義。 在File2.h
您僅提供別名。
注意:如果只在File1.h
提供減速度,然后將BOOL
定義放在另一個文件中,那會更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.