0

以下のプログラムを用意します。実行時に列挙型メンバーに値を割り当てたいと思います。どうすればいいですか?

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;
}

私を助けてください。

4

3 に答える 3

3

まず、列挙値は定数であるため、後でコードで変更することはできません。

第二に、私はあなたが何をしようとしているのかわかりません。

于 2013-03-22T06:48:09.707 に答える
3

明確にするために、 Anenumは一部に名前を付ける方法にすぎません。constants

とは逆にdefines、変数に設定した名前は(通常)コンパイラーによって破棄されないため、デバッガーを使用してプログラムを実行しているときにそれらを確認できるため、便利です。

変数を再グループ化して値を設定する場合は、structures代わりにを使用してください。

于 2013-03-22T06:50:43.083 に答える
1

代わりに、これを意味しますか?

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

int main(){

    abc ab;
    ab.Test.a = 5;
    return 0;
}
于 2013-03-22T06:54:35.267 に答える