使用sizeof在c ++中有不同的结果

时间:2014-12-28 18:44:57

标签: c++ c

我在测试期间面临一个奇怪的结果sizeof()T1T2的大小与T2中使用的类型相同,小于T1

#include <iostream>

using namespace std;

struct T1 {
    int     id;
    int     enable;
};

struct T2 {
    int     id;
    char    enable;
};


int main() {
    cout << sizeof(T1) << endl; // Print 8
    cout << sizeof(T2) << endl; // Print 8
    return 0;
}

1 个答案:

答案 0 :(得分:1)

T2用于对齐。

也就是说,它包含未使用的字节,以便T2的数组将所有T2.id双字对齐。