对于 C/C++ 结构,通常,最终结构的大小是其所有元素大小的简单总和,但在某些情况下这是不正确的。
我正在查看为什么以下结构的大小不等于其所有成员的大小的技术答案(它必须是一个):
#include <iostream>
struct {
int a;
long b;
char c;
} typedef MyStruct;
int main() {
MyStruct sss;
std::cout << "Size of int: " << sizeof(int) << std::endl << "Size of long: " << sizeof(long) << std::endl << "Size of char: " << sizeof(char) << std::endl;
std::cout << "Size of MyStruct: " << sizeof(sss) << std::endl;
return 0;
}
Thas 有以下输出:
Size of int: 4
Size of long: 8
Size of char: 1
Size of MyStruct: 24
所以可以看出比的大小MyStruct
不是4+8+1 (13)
,其实是24
,但是为什么呢?