c – sizeof(struct)返回意外的值

前端之家收集整理的这篇文章主要介绍了c – sizeof(struct)返回意外的值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这应该很简单,但我不知道在哪里寻找问题:

我有一个结构:

struct region
{
public:
    long long int x;
    long long int y;
    long long int width;
    long long int height;
    unsigned char scale;
};

当我做sizeof(区域),当我期待33时,它给我40.

有任何想法吗?

(mingw gcc,win x64 os)

解决方法

它将结构填充为8字节边界.所以它实际上是在内存中占用40个字节 – sizeof返回正确的值.

如果您只想要33个字节,则指定打包属性

struct region
{
public:
    long long int x;
    long long int y;
    long long int width;
    long long int height;
    unsigned char scale;
} __attribute__ ((packed));
原文链接:https://www.f2er.com/c/115827.html

猜你在找的C&C++相关文章