我发现自己总是将枚举的名称附加到它的值上,因为否则我经常与其他枚举发生冲突,例如:
typedef enum
{
A_ONE,
A_TWO,
} A;
typedef enum
{
B_ONE,
B_TWO,
} B;
在 C 中有没有更好的方法来做到这一点?
No, there is not. C++ has namespaces, or enums existing in classes (IIRC), but C is extremely primitive in this regard.
这是您自己的决定,但您可以使用 #define 指令
#define WHAT_EVER TO_BE_REPLACED
定义将从WHAT_EVER
您的代码中替换为TO_BE_REPLACED
.
在你的预处理器运行抛出你的代码之后,所有的都将被替换。