确保C中的枚举名称唯一性,而不添加长前缀

Mui*_*uis 5 c enums c99

我发现自己总是将枚举的名称附加到其值,因为否则我经常与其他枚举冲突,例如:

typedef enum
{
    A_ONE,
    A_TWO,
} A;

typedef enum
{
    B_ONE,
    B_TWO,
} B;
Run Code Online (Sandbox Code Playgroud)

在C中有更好的方法吗?

dje*_*lin 2

不,那里没有。C++ 具有命名空间,或存在于类中的枚举 (IIRC),但 C 在这方面非常原始。