gpt4 book ai didi

c++ - 使用 MSVC++ 编译器打包枚举

转载 作者:行者123 更新时间:2023-11-30 04:40:44 25 4
gpt4 key购买 nike

使用 GCC,我可以使用 attribute((packed)) 对枚举进行打包,但它似乎是 MSVC 中最接近的东西,#pragma pack,不起作用在枚举上。有谁知道将枚举打包成 1 个字节而不是通常的整数大小的方法吗?

最佳答案

这是 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

关于c++ - 使用 MSVC++ 编译器打包枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com