Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Storable(c2hs を使用して) 5 つのオプションを持つ C 列挙型のインスタンスを書き込むと、{# sizeof #}マクロは 4 (つまり 4 バイト) を返します。3ビットで十分なのに、これは非常に無駄ではありませんか?これはメモリワードのサイズに依存しますか?
Storable
{# sizeof #}
enum のサイズは実装定義です。標準は次のように述べています。
6.7.2.2 列挙指定子... 各列挙型はchar、符号付き整数型、または符号なし整数型と互換性があります。タイプの選択は実装定義です...
6.7.2.2 列挙指定子...
各列挙型はchar、符号付き整数型、または符号なし整数型と互換性があります。タイプの選択は実装定義です...
char
ところで、C++ では、基になる型を明示的に指定できます。たとえば、次のようになります。
enum E : int { // ... };