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

时间:2013-03-22 06:44:19

标签: c

让我有以下计划。我想在运行时将值赋给枚举成员。我该怎么办?

typedef enum test{
    a, b
}test;
typedef struct abc{
    test Test;
}abc;
int main(){

    abc ab;
    ab.Test.a = 5;//Throwing an error as "Expression must have class type"
    return 0;
}

请帮帮我。

3 个答案:

答案 0 :(得分:3)

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

其次,我不知道你要做什么..

答案 1 :(得分:3)

出于清晰原因,enum只是为某些constants提供名称的方法。

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

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

答案 2 :(得分:1)

你是说这个,而不是?

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

int main(){

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