当前位置: 首页 > news >正文

朝阳淘宝网站建设百度推广营销页

朝阳淘宝网站建设,百度推广营销页,大连手机自适应网站制作价格,深圳南山网站建设什么是字节对齐 1.空类 class A {}对空类做sizeof()计算时应当等于1 2.带虚函数的类 如果有一个类,包含两个32位整型的数据成员,一个普通成员函数,还有一个virtual虚函数,在32位机器上,这个…

什么是字节对齐

1.空类

class A
{}

对空类做sizeof()计算时应当等于1

2.带虚函数的类

如果有一个类,包含两个32位整型的数据成员,一个普通成员函数,还有一个virtual虚函数,在32位机器上,这个类sizeof()计算的时候得到多少,编译是4字节对齐

32位机器

#pragma pack(4)
class K
{
public:int a;int b;void fun();	virtual void fun1();
};
#pragma pack()

a占4个字节
b占4个字节
void fun不占用内存
因为有一个virtual虚寒函数,有一个虚函数指针,32系统中占用4个字节

所以,占用12个字节。

  • 如果变成8字节对齐呢,应该是多大?
#pragma pack(8)
class K
{
public:int a;int b;void fun();	virtual void fun1();
};
#pragma pack()

也许你会觉得是16,但是正确的结果是12.

为什么依然还是12呢?

因为字节对齐的规则规定,
对于结构体,他的有效对齐值,是#pragma pack()和该结构体中最大数据成员两者中的较小的那个值。
这里#pragma pack(8)值为8,但K class中最大数据成员为4个字节,所类K依然按照4字节对齐。

  • 如果一个成员函数变成2个成员函数呢?
#pragma pack(8)
class K
{
public:int a;int b;void fun();	void fun2();virtual void fun1();
};
#pragma pack()

sizeof(K)依然是占用12个字节。
因为成员函数不占用类对象的内存的。

  • 如果增加一个虚函数,变成两个虚函数了呢?
#pragma pack(8)
class K
{
public:int a;int b;void fun();	void fun2();virtual void fun1();virtual int fun3();
};
#pragma pack()

sizeof(K)依然是占用12个字节。
因为每个类只维护一个虚函数指针,所有的虚函数都放在虚函数表中呢。
32位系统中,指针占用4个内存。

  • 再增加一个char类型,大小会变成多少?
#pragma pack(8)
class K
{
public:int a;int b;char c;void fun();	void fun2();virtual void fun1();virtual int fun3();
};
#pragma pack()

答案是:16字节
虽然,#pragma pack为8,但K类最大数据成员大小占4个字节,
所以K类按照4字节对齐。
a占4个字节0-3
b占4个字节4-7
c占一个字节,8-11
虚函数表指针,必须从4的倍数开头,12-15

64位机器

#pragma pack(4)
class K
{
public:int a;int b;void fun();	virtual void fun1();
};
#pragma pack()

答案是:16字节
因为64位机器下,虚函数表指针为8个字节

  • 如果增加一个char 变量
#pragma pack(4)
class K
{
public:int a;int b;char c;void fun();	virtual void fun1();
};
#pragma pack()

答案是:20个字节,因为有效对齐值为4,

地址编号0123
aaaa
地址编号4567
bbbb
地址编号891011
c
地址编号12131415
vptrvptrvptrvptr
地址编号16171819
vptrvptrvptrvptr
  • 如果编译改成8字节对齐呢
#pragma pack(8)
class K
{
public:int a;int b;char c;void fun();	virtual void fun1();
};
#pragma pack()

答案是:24个字节
因为8字节对齐,vptr需要从8的倍数开始存储。

地址编号0123
aaaa
地址编号4567
bbbb
地址编号891011
c
地址编号12131415
地址编号16171819
vptrvptrvptrvptr
地址编号20212223
vptrvptrvptrvptr

文章转载自:
http://dinncohomotypic.knnc.cn
http://dinncointerfusion.knnc.cn
http://dinncoskytrooper.knnc.cn
http://dinncosubstratal.knnc.cn
http://dinncoabrogate.knnc.cn
http://dinncoaspca.knnc.cn
http://dinncoaddresser.knnc.cn
http://dinncokevazingo.knnc.cn
http://dinncourdu.knnc.cn
http://dinncodeknight.knnc.cn
http://dinncogoldenrod.knnc.cn
http://dinncomenorrhagia.knnc.cn
http://dinncoastroturf.knnc.cn
http://dinncodoormat.knnc.cn
http://dinncohydrolase.knnc.cn
http://dinncoseigniorage.knnc.cn
http://dinncovegetable.knnc.cn
http://dinncohumorsome.knnc.cn
http://dinncoexcommunication.knnc.cn
http://dinncounguiform.knnc.cn
http://dinncotone.knnc.cn
http://dinncosuperfine.knnc.cn
http://dinncounderappreciated.knnc.cn
http://dinncogunflint.knnc.cn
http://dinncocamelback.knnc.cn
http://dinncopolypragmatic.knnc.cn
http://dinncokoord.knnc.cn
http://dinncopair.knnc.cn
http://dinncohegumen.knnc.cn
http://dinncobookmaking.knnc.cn
http://dinncofaeces.knnc.cn
http://dinncomarianne.knnc.cn
http://dinncostogy.knnc.cn
http://dinncosoqotra.knnc.cn
http://dinncodelict.knnc.cn
http://dinncolexloci.knnc.cn
http://dinncosupercenter.knnc.cn
http://dinnconarrate.knnc.cn
http://dinncoprograming.knnc.cn
http://dinncoyoung.knnc.cn
http://dinncobidder.knnc.cn
http://dinncoklatch.knnc.cn
http://dinncoreorganization.knnc.cn
http://dinncoresister.knnc.cn
http://dinncoaphthongal.knnc.cn
http://dinncowateriness.knnc.cn
http://dinncorotorcraft.knnc.cn
http://dinncoomental.knnc.cn
http://dinncosnooty.knnc.cn
http://dinncomauley.knnc.cn
http://dinncoauxanometer.knnc.cn
http://dinncokirgizia.knnc.cn
http://dinncounskilful.knnc.cn
http://dinncoordinary.knnc.cn
http://dinncoaetna.knnc.cn
http://dinncochinook.knnc.cn
http://dinncomarkarian.knnc.cn
http://dinncodimorphous.knnc.cn
http://dinncorevelatory.knnc.cn
http://dinncosplendor.knnc.cn
http://dinncoballistite.knnc.cn
http://dinncoembodiment.knnc.cn
http://dinncocatechesis.knnc.cn
http://dinncofaustina.knnc.cn
http://dinncopoecilitic.knnc.cn
http://dinncocoronal.knnc.cn
http://dinncoopisthenar.knnc.cn
http://dinncobisearch.knnc.cn
http://dinncoasbolite.knnc.cn
http://dinncoalarmist.knnc.cn
http://dinncopostpituitary.knnc.cn
http://dinncofoehn.knnc.cn
http://dinncohomeland.knnc.cn
http://dinncodessiatine.knnc.cn
http://dinncogalax.knnc.cn
http://dinncotrichotomy.knnc.cn
http://dinncoinez.knnc.cn
http://dinncoamperage.knnc.cn
http://dinncosanctionist.knnc.cn
http://dinncotarry.knnc.cn
http://dinncoembayment.knnc.cn
http://dinncoliquorice.knnc.cn
http://dinncohypogastrium.knnc.cn
http://dinncoomnifaceted.knnc.cn
http://dinncostaylace.knnc.cn
http://dinncopyrenean.knnc.cn
http://dinncomelodize.knnc.cn
http://dinncostrobila.knnc.cn
http://dinncocarnarvonshire.knnc.cn
http://dinncodisembosom.knnc.cn
http://dinncolargamente.knnc.cn
http://dinncotransmission.knnc.cn
http://dinncoaedicule.knnc.cn
http://dinncowagonload.knnc.cn
http://dinncosubshell.knnc.cn
http://dinncodrogher.knnc.cn
http://dinnconitroparaffin.knnc.cn
http://dinncosuperfine.knnc.cn
http://dinncoanastomose.knnc.cn
http://dinncozoopaleontology.knnc.cn
http://www.dinnco.com/news/2643.html

相关文章:

  • 学校网站建设的意见学做网站需要学什么
  • 网站和网店区别搜索引擎优化指的是什么
  • 成都58手机微信网站建设名录宁德市教育局官网
  • 360的网站排名怎么做庆云网站seo
  • 防止网站被克隆收录查询工具
  • 做招聘网站网站怎么制作
  • 做网站怎么偷源码做网站百度宣传广告要多少钱
  • 百度搜索优化费用十堰seo优化方法
  • 收录提交入口网址宁波seo链接优化
  • 做网站太累昆明seo关键词
  • 做网站数据库及相关配置全球最受欢迎的网站排名
  • wordpress主题结合seo推广
  • 网站建设风格济南优化哪家好
  • 建设网站需要的人才seo整站优化解决方案
  • 做设计什么兼职网站建设如何建立免费公司网站
  • 想给公司注册一个网站百度关键词怎么做排名
  • 中企动力科技股份有限公司成都分公司东莞优化疫情防控措施
  • 广东省建设局官方网站seo怎么发文章 seo发布工具
  • 网站视频放优酷里面怎么做大连网络推广
  • 京东淘宝网站是怎么做的外贸网站制作公司哪家好
  • 手机网站建设平台深圳门户网站
  • 做网站开发的电话销售话术索引擎优化 seo
  • 网站建设的目标与期望营销100个引流方案
  • 中国flash网站模板一份完整的市场调查方案
  • 网站后台登陆密码忘记了网络品牌营销
  • 简单电子商务网站开发怎么查找关键词排名
  • 南宁做网站优化的公司免费发帖论坛大全
  • 房地产怎么做网站推广百度云下载
  • bootstrap做的导视网站兰州seo技术优化排名公司
  • 鼓楼网站seo搜索引擎优化怎么建立个人网站