结构具有逻辑存在性,并且在定义结构变量后才能生效。我想知道枚举的存储方式,它们在声明后立即生效。这仅仅是合乎逻辑的存在吗?
#include<stdio.h>
enum tag{
a,
b};
struct tag1 {
int temp;
}var;
int main(){
int a=9;
printf("%d %d\n",a,b);
printf("%d\n",var.temp);
}
我听说枚举没有存储在内存中,所以我的问题是b从何处获取其值。
最佳答案
在编译过程中,b
将替换为其值(在您的情况下为1)。因此,它将以与常量相同的方式处理,并且不可能像变量一样获取其地址。
关于c - 枚举存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54528816/