结构体占用的内存空间跟类一样,区别只在于结构体成员默认是public,而类默认是private。
1.1占用空间解析
结构体中构造函数、成员函数、析构函数是不占用内存空间的,只有成员变量才占用结构体的内存空间。当然还有一个虚函数也会占用四个字节地址空间。枚举类型占据四个字节,范围为4294967296足够用了,不够需要扩充,一般很少这种情况。
结构体内的结构体占的内存空间的对齐方式,是按照该结构体最大的类型进行内存对齐的。比如结构体A中包含了结构体B,而结构体B中单个类型最大的为double,也就是说,A结构体按结构体B对齐时,是按照double类型对齐。但是计算内存是整个结构体B的内存大小。
特殊情况:结构体或者类中的static静态成员变量是不占用结构体的内存空间的。因为static是存储在静态内存,而结构体是存储在栈上的。
结构体定义多个成员变量时,会自动内存对齐。对齐的原则是下一个成员变量的占的字节空间是前面最大变量的整数倍&#x