我在测试期间面临一个奇怪的结果sizeof()
。
T1
和T2
的大小与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;
}
答案 0 :(得分:1)
T2
用于对齐。
也就是说,它包含未使用的字节,以便T2
的数组将所有T2.id
双字对齐。