2020-C++高级程序设计-C++ 结构体

struct 结构体

  1. 赋值-同类型:同类型一共就两种情况
    1. 同类型:Memory copy
    2. 同类型:Typedef
    3. 内存布局就算是一样也不认为是相同的。
  2. alignment:一般是指内存对齐(存在于大多数编程语言中)
    1. 契合硬件
    2. 提升效率
  3. 我们使用参数传递
  4. C++向前兼容,class不写访问权限,全部都是private,struct不写访问权限,全部都是public
  5. struct也可以被理解成为类
  6. 结构体是按名访问
  7. typedef:是重命名
1
2
3
4
5
6
7
8
struct B
{
char b; //1
int a; //4
short c; //2
};
cout << sizeof(B);//12
//为什么是12,是因为内存空间对齐,提高内存访问效率
1
2
3
4
//可关闭
__declspec(align(8))
#pragma pack(n)
//可以调整内存布局,将c和b整合到一起,然后B就是大小为8
  1. 使用pack可以让其摒弃用存储空间换取时间的做法,将空间尽可能的利用起来。

2020-C++高级程序设计-C++ 结构体
https://spricoder.github.io/2020/07/01/2020-C-plus-plus-advanced-programming/C++-%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/2020-C-plus-plus-advanced-programming-C++%20%E7%BB%93%E6%9E%84%E4%BD%93/
作者
SpriCoder
发布于
2020年7月1日
许可协议