1. ホーム
  2. c

[解決済み] C言語におけるenumのサイズは?

2022-04-29 12:48:12

質問

enum値のセットを作成していますが、各enum値の幅が64ビットである必要があります。私の記憶が正しければ、enum は一般に int と同じサイズです。しかし、(少なくとも GCC では)コンパイラはその値を保持するために必要な幅の enum を作ることができるとどこかで読んだことがあるように思います。ですから、64ビット幅のenumを持つことは可能でしょうか?

解決方法は?

について enum を保持できる大きさしか保証されません。 int の値を指定します。 コンパイラは定義された列挙定数に基づいて実際に使用する型を自由に選択できるので、定義した値を表現できるのであれば、より小さい型を選択することができます。 に収まらない列挙定数が必要な場合、その列挙定数で定義された値を表現できるのであれば、より小さな型を選ぶことができる。 int を使用する場合は、コンパイラ固有の拡張機能を使用する必要があります。