gpt4 book ai didi

c - C语言中 'enum'的值是如何存储的?

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:06 24 4
gpt4 key购买 nike

我知道“枚举”数据类型是用户定义的数据类型,而“枚举” 变量是“int”的大小。

  1. 上面的'identifier'是一组常量值,常量值有一个别名,这些值是如何存储在内存中的?我的意思是“值 1”是如何存储的,即“0”,“值 2”是如何存储的,即“20”,“值 3”是如何存储的,即“7000”,“值 4”是如何存储的,即内存中的“1234567”。
  2. 我知道“enum_variable”的大小为 32 位,而不是强制的。但这里的困惑部分是 32 位 [if] 如何共同存储所有“枚举”值?

    enum identifier
    {
    value1 = 0, value2 = 20, value3 = 7000, value4 = 1234567
    } enum_variable;

    printf("%d\n",sizeof(enum_variable));

最佳答案

枚举“值”根本不存储,因为它们是编译时命名的常量。

编译器简单地将枚举符号的使用与其值交换。

此外,枚举值的类型是 int 类型,因此确切大小可能不同。但正因为如此,枚举值可以是与 int 相同范围内的任何值。

有关更多信息,请参见例如this enumeration reference .

关于c - C语言中 'enum'的值是如何存储的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com