创建两个具有相同0值的枚举

时间:2019-05-15 18:21:53

标签: enums scope compiler-construction vxworks

我想创建两个具有相同0(默认值)的枚举,如下所示:

enum testone_e    {
    NOCHANGE = 0,
    DOONETHING,
    BLABLA
};

enum testtwo_e    {
    NOCHANGE = 0,
    DOANOTHERTJHING,
} ;

,但是编译器抱怨:  “ NOCHANGE”已在当前范围内声明

为什么,这不是两个不同的范围(因为值在不同的枚举中)。我该如何最好地解决? 这是使用WindRiver的diab编译器

1 个答案:

答案 0 :(得分:3)

在C中,所有枚举常量在全局范围内均为int。 (更准确地说,在enum本身的范围内,通常是文件范围。)

因此,每个名称只能定义一次。