gpt4 book ai didi

c++ - 实际结构尺寸

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:04 26 4
gpt4 key购买 nike

我怎样才能知道实际的结构尺寸?使用 sizeof 返回对齐后的字节数。例如:

struct s {
char c;
int i
}

sizeof(s) = 8;我有兴趣获得没有对齐的字节大小,即 5

最佳答案

结构的实际尺寸为对齐后的结构尺寸。我的意思是 sizeof 返回内存中结构的大小。如果你想要一个按字节对齐的结构,你应该告诉编译器这样做。例如像这样的东西:

#ifdef _MSVC
# pragma pack(push)
# pragma pack(1)
# define PACKED
#else
# define PACKED __attribute((packed))
#endif
struct byte_aligned {
char c;
int i;
} PACKED;
#ifdef _MSVC
# pragma pack(pop)
#endif

现在 sizeof(byte_aligned) 返回 5 及其在内存中的实际 5 字节

关于c++ - 实际结构尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12179481/

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