结构体与数组的区别
- 结构体:可以保存不同类型的数据
- 数组:只能保存相同类型的数据
结构体与共用体的区别
- 结构体:每个成员分配不同的内存
- 共用体:几个不同的变量共用一块内存,所占空间为最大类型所占用的空间,如果二次赋值,则第一次的值被覆盖
C与C++结构体的区别
- C:
struct,内部不可以出现函数 - C++:
class,内部可以出现函数
- C:
结构体内存的计算(字节对齐)
#pragma pack(1)- 结构体变量按1字节对齐,最宽字节和补齐字节都为1字节
- 如果不设置,默认为4字节对齐
- 32位系统最宽只有4字节,如果写8,则按4字节计算
struct person{
char v; //补齐为4字节
int age;
char name[20];
float high;
char iphonr[20];
long long x; //按两个4字节计算
double d; //按两个4字节计算
short c;
struct person* a;
};
- 字节对齐规则:
数组看作单一的数据类型来看待;
当前类型是下一个类型的整数倍,否则用字节补齐;
总大小是最宽字节的整数倍,否则用字节补齐.

被折叠的 条评论
为什么被折叠?



