网址连接
https://www.cnblogs.com/zhengfa-af/p/8144786.html
主要内容:
1. C语言中,结构体的3中不同声明和定义方式;
2. struct在C和C++中的区别。C++可以在struct中添加函数,类似于class;
3. C++中,struct和class的区别。
struct的成员默认权限是public,class的成员默认权限是private;
struct的默认继承方式是public,class的默认继承方式是private;
4. 结构体的作用——封装;
5. 结构体的大小和内存对齐;
为了提高存储的速度,VC对结构体内的变量存储的起始地址进行“对齐”操作。
1)默认对齐方式:结构体中每个成员的起始地址相对于结构体内存起始地址的偏移量必须是当前成员所占用内存大小(字节数量)的倍数。同时,VC为了保证结构体的内存大小是字节边界数(即结构中占用内存最大的成员类型的字节数)的倍数,会在最后一个变量申请内存后,根据需要充填相应的字节数。
2)在VC中提供了#pragmapack(n)来设定变量以n字节对齐方式。