Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在运行时为枚举成员赋值?_C - Fatal编程技术网

C 如何在运行时为枚举成员赋值?

C 如何在运行时为枚举成员赋值?,c,C,让我有下面的程序。我想在运行时将该值分配给枚举成员。我怎么做 typedef枚举测试{ a、 b }试验; 类型定义结构abc{ 试验; }abc; int main(){ abc ab; ab.Test.a=5;//抛出错误为“表达式必须具有类类型” 返回0; } 请帮助我。首先,枚举值是常量,因此,以后不能在代码中更改它们 第二,我不知道你想做什么 出于清晰的原因,enum只是给一些常量命名的一种方式 它可能很有用,因为与定义相反,您为变量设置的名称(通常)不会被编译器丢弃,因此您可以在使

让我有下面的程序。我想在运行时将该值分配给枚举成员。我怎么做

typedef枚举测试{
a、 b
}试验;
类型定义结构abc{
试验;
}abc;
int main(){
abc ab;
ab.Test.a=5;//抛出错误为“表达式必须具有类类型”
返回0;
}

请帮助我。

首先,枚举值是常量,因此,以后不能在代码中更改它们


第二,我不知道你想做什么

出于清晰的原因,
enum
只是给一些
常量命名的一种方式

它可能很有用,因为与
定义
相反,您为变量设置的名称(通常)不会被编译器丢弃,因此您可以在使用调试器检查程序时看到它们


如果要重新组合变量并为其设置值,请改用
结构。

您的意思是这样吗

typedef struct test{
    int a, b;
} test;
typedef struct abc{
    test Test;
} abc;

int main(){

    abc ab;
    ab.Test.a = 5;
    return 0;
}

如果你得到的是“表达式必须有类类型”,你不是在做C。(C没有类。)呃,你知道什么是an吗?(提示,常量)我得到
错误:请求非结构或联合中的成员“a”
。这更有帮助吗?