GCC では、属性(( packed )) を使用して列挙型のパッキングを行うことができましたが、MSVC で最も近い #pragma pack は列挙型では機能しないようです。通常の整数サイズではなく、列挙型を 1 バイトにパックする方法を知っている人はいますか?
2005 次
1 に答える
3
これは MSVC 固有です。
// instances of this enum are packed into 1 unsigned char
// warning C4480: nonstandard extension used
enum foo : unsigned char { first, second, last };
assert(sizeof(foo) == sizeof(unsigned char));
// instances of this enum have the common size of 1 int
enum bar { alpha, beta, gamma };
assert(sizeof(bar) == sizeof(int));
参照については、ここを参照してください: MSDN -> enum
于 2009-05-07T22:23:49.020 に答える