如何释放枚举类型变量中的元素?

时间:2019-06-18 10:31:36

标签: c enums

在编译代码时,它不会显示插入到结构体枚举变量中的值

此代码仅显示键盘输入0或1

React.useEffect(() => {
    document.addEventListener('keydown', handleKeyPress)
    return () => {
        document.removeEventListener('keydown', handleKeyPress)
    }
})

3 个答案:

答案 0 :(得分:4)

请参见以下示例,

enum week{Mon, Tue, Wed, Thur, Fri, Sat, Sun}; 

int main() 
{ 
    enum week day; 
    day = Wed; 
    printf("%d",day); 
    return 0; 
}  

这里我们声明一个类型为day的变量day,并使用“字符串”将列表中的一个(数值)值分配给该变量,但是不可能采用其他方法。

答案 1 :(得分:1)

这等效于

enum latitude_pole {
  North = 0,
  South = 1
} pole;

这定义了变量pole,其可能的值为North(0)和South(1)。

相当于写作

enum latitude_pole {
  North = 0,
  South
} pole;

因为如果您初始化一个成员,那么下一个成员将是+1(先前的成员)。

在您的代码中,缺少初始化将默认插入第一个成员的值0和第二个成员的值。

答案 2 :(得分:0)

如果您不给枚举常量任何值,编译器将以静默方式进行。

第一个常量将始终被赋予值0,随后的每个枚举常量将获得前一个常量+ 1的值。

对于您的情况{North,South},保证North为0,保证South为1。保证这些枚举常量的类型与{{1 }}。

如果您只明确键入了一些值,则该规则适用于每个获得前一+ 1值的常量。因此,如果您执行int,他们将获得值{North,South,East=5,West}