这应该很简单,但我不知道在哪里寻找问题:
我有一个结构:
struct region
{
public:
long long int x;
long long int y;
long long int width;
long long int height;
unsigned char scale;
};
当我执行 sizeof(region)
时,它给了我 40 而我期望 33。
有什么想法吗?
(mingw gcc,win x64 操作系统)
最佳答案
它正在填充结构以适应 8 字节边界。所以它实际上占用了 40 个字节的内存 - sizeof 返回了正确的值。
如果您希望它只占用 33 个字节,请指定 packed
属性:
struct region
{
public:
long long int x;
long long int y;
long long int width;
long long int height;
unsigned char scale;
} __attribute__ ((packed));
关于c++ - sizeof(struct) 返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596428/