结构的大小根据成员变量的大小而变化,

时间:2016-09-03 11:03:18

标签: c++ ubuntu-12.04

struct abc
{
int x;
char p;
double x;
char x1;
int x2;
char x3;
};

输出:sizeof(abc)是32字节

但代码相同

struct abc
    {
    int x;
    char p;
    double x;
    char x1;
    char x3;
    int b3;
    };

sizeof(abc)的输出是24字节

第一个程序编译器如何为整数后定义的charecter多占用8个字节?

1 个答案:

答案 0 :(得分:1)

编译器为您的结构添加额外的对齐字节。在Visual Studio中,您可以使用未记录的/ d1reportAllClassLayout进行编译以查看:

pollServerForChanges: task(function * () {
  while (true) {
    yield timeout(2000); // wait 2 seconds
    this.get('store').query(...)
  }
}).on('activate').cancelOn('deactivate').restartable(),

如您所见,编译器在结构末尾添加了额外的4个字节。