内存对齐
来源:互联网 发布:淘宝商城分销平台 编辑:程序博客网 时间:2024/05/11 11:26
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
struct
{
short a1;
short a2;
short a3;
}A;
struct
{
long a1;
short a2;
}B;
int _tmain()
{
int a10 = sizeof(A);//6, short的字长为2
int a11 = sizeof(B);//8, long的字长为4, short为2, 编译器会进行对齐 补足4的整数倍
char *ss1 = "0123456789";
int b1 = sizeof(ss1); //4, 指针的大小为4
char ss2[] = "0123456789";
int b2 = sizeof(ss2); //11
char ss3[100] = "0123456789";
int b3 = sizeof(ss3); //100
int ss4[100];
int a4 = sizeof(ss4);//100
char q1[] = "abc";
int a5 = sizeof(q1);//4
char q2[] = "a\n";
int a6 = sizeof(q2);//3 "a,\n, \0"
char* q3 = "a\n";
int a7 = sizeof(q3);//4
char *str1 = (char *)malloc(100);
int a8 = sizeof(str1);//4
void *str2 = (void *)malloc(100);
int a9 = sizeof(str2); //4
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
class A1
{
public:
int a;
static int b;//静态变量存放在全局数据区里, sizeof()计算的是栈中分配的大小,则sizeof(A1)为sizeof(int),也就是4
A1();
~A1();
};
class A2
{
public:
int a;
char c;
A2();
~A2();
};
class A3
{
public:
float a;
char c;
A3();
~A3();
};
class A4
{
public:
float a;
int b;
char c;
A4();
~A4();
};
class A5
{
public:
double d;
float a;
int b;
char c;
A5();
~A5();
};
int _tmain()
{
int a1 = sizeof(A1);//4
int a2 = sizeof(A2);//8
int a3 = sizeof(A3);//8 sizeof(float)=4, sizeof(doube) = 8
int a4 = sizeof(A4);//12
int a5 = sizeof(A5);//24 8 + 4 + 4,char按照double对齐, 为24
int a6 = sizeof(float);
int a7 = sizeof(double);
return 0;
}
- 关键字 对齐 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 内存对齐
- 锤子手机T1发布:售价3000元起 7月初上市
- Andrid控件 之 WebView(二)
- Internet Explorer 11: “请不要再叫我 IE”
- 嵌入式Linux系统的构成
- latex中插入图片的一个备忘
- 内存对齐
- Qt5.0.1 MinGW 4.7 配置opencv2.4.8
- linux调整系统的时间
- JQGrid 备忘
- 配置使用yii 自动化代码生成工具gii(脚手架)
- 如何在Win7中建立可以远程访问却无法本地登录的账户?
- SVN 多人修改,如何管理 关于版本的问题
- Read-Write lock 看可以,不过看的时候不能写
- ORACLE EXP不能导出空表的原因分析及解决方法