内存占用大小
| 16位编译器 | 32位 | 64位 |
Char | 1 | 1 | 1 |
Short Int | 2 | 2 | 2 |
int | 2 | 4 | 4 |
Unsigned int | 2 | 4 | 4 |
Long | 4 | 4 | 8 |
Unsigned long | 4 | 4 | 8 |
long long | 8 | 8 | 8 |
Float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
指针 | 2 | 4 | 8 |
|
|
|
|
未随编译器位数变化 一直递增 int和long会变化,有无符号的变化一致
空类------------------------- 1
类的虚函数--------------- 4
类的函数------------------ 4
struct的大小问题
0 空结构体大小 = 1;
1 一般结构体:
typedef struct test2
{
int aa;
int bb;
}test2;
此时大小 = 8;
2 对struct进行嵌套:
typedef struct test1
{
test2 t;;
}test1;
此时大小 = 8;
3 struct内存对齐问题
参考博客后面部分,union与struct的内存对齐问题 https://blog.csdn.net/qian27enjoy/article/details/82813452