【C++】C++的字节对齐

结构体为:

struct A {
    int a;
    char b;
    double c;
};

struct B {
    int a;
    double c;
    char b;
};

int main() {
    printf("%d %d", sizeof(A), sizeof(B));
}

64位系统下,输出了 16 24

对于A来说,结构如下:
|int a(32位)|char b(8位)|占用(24位)| => 第0~7个字节
|double c(64位)| => 第8~15个字节
总共16个字节。

对B来说,结构性如下:
|int a(32位)|占用(32位)| => 第0~7个字节
|double c(64位)| => 第8~15个字节
|char b(8位)|占用(56位)| => 第16~23个字节
总共24个字节。

posted @ 2024-04-09 21:37  tudouuuuu  阅读(4)  评论(0编辑  收藏  举报