列挙型のフィールドの値を固定数で増やすことはできますか?Cで固定数で列挙型の値を増やす
言う私が列挙
typedef enum {
VAL_A,
VAL_B,
VAL_C
}ENUM_X;
を持っている場合、私は値が(デフォルトである1以外)の固定数でインクリメントすることができるように列挙型を定義します。これは、上記の答えは真であり、そのような仕組みがあれば、それは値が順次インクリメントすることが可能でしょうか?また
VAL_A = 4; VAL_B = 8; VAL_C = 12;
(のは数が4であるとしましょう)を持つ私につながりますか
は、私は同じ列挙型が
typedef enum {
#ifdef A
VAL_A,
#endif
#ifdef B
VAL_B,
#endif
#ifdef C
VAL_C,
#endif
VAL_END
}ENUM_X;
として再定義しましたそして、上記列挙のために、私はAとCを定義した場合、私は
VAL_A = 4; VAL_C = 8;
を取得する必要があります言うしかし、私はBとCを定義した場合、私は
VAL_B = 4; VAL_C = 8;
を取得する必要がありますそして、私はすべてのA、BおよびCを定義した場合、私は
を取得する必要がありますVAL_A = 4; VAL_B = 8; VAL_C = 12;
これを行う方法を考えると、数字を自分で書き込むよりも複雑になります。 – DeiDei
Cに列挙値のカスタムステッピングはありません。これはプラスの値か、明示的に設定した値です。 –