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

玩具网站建设策划书宝塔如何搭建网站

玩具网站建设策划书,宝塔如何搭建网站,对网站内容建设的建议,成都到西安动车目录1. 内存对齐规则2. 简单易懂的内存对齐示例2.1 简单结构体2.2 含位域的结构体2.3 空类的大小2.4 嵌套结构体3. 为什么需要内存对齐#xff1f;4. 类型在不同系统下所占字节数1. 内存对齐规则 第一个成员在与结构体变量偏移量为0的位置处。其他成员变量要对齐到某个数字4. 类型在不同系统下所占字节数1. 内存对齐规则 第一个成员在与结构体变量偏移量为0的位置处。其他成员变量要对齐到某个数字对其数的整数倍的地址处。对其数编译器默认的一个对齐数与该成员大小的较小者。vs中默认的值是8 Linux中默认的值是4结构体总大小为最大对其数每一个成员变量都有一个对其数的整数倍。如果嵌套了结构体对齐到自己的最大对其数是整数倍处结构体的整体大小就是最大对齐数含嵌套结构体的对齐数的整数倍。如对内存对齐有明确要求可用#pragma pack(n)指定n必须是2的N次方以n和结构体中最长数据成员长度中较小者为有效值 可能只看上面的描述你还是有点搞不懂那么我们可以看一下具体的例子和视图讲解 struct s1{char c1;int i;char c2; }; //结构体总大小为122. 简单易懂的内存对齐示例 2.1 简单结构体 struct s1 {char str; //1字节short x; //2字节int num; //4字节 }; // sizeof(s1) 8 // (11) 2 4 8 第2个加1处的内存是空的2.2 含位域的结构体 一个位域必须存储在同一个字节中不能跨两个字节。如一个字节所剩空间不够存放另一位域时应从下一单元起存放该位域。 struct s2 {unsigned char a:7; //字段a占用了一个字节的7个bitunsigned char b:2; //字段b占用了2个bitunsigned char c:7; //字段c占用了7个bit }s1; // sizeof(s1) 3 // 1 1 1 3struct s3 {char t : 4; //4表示在一个字节中占4个比特位char k : 4; }; // sizeof(s3) 1 //0.5 0.5 1struct s4 {char t : 4; //4表示在一个字节中占4个比特位char k : 4;unsigned short i : 8;char a; }; // sizeof(s4) 6 //(0.5 0.5 1) 2 (11) 6 // 解释0.5和0.5占一个字节两个占4比特的刚好可以放在一个字节中short为2字节对齐数是2所以0.5 0.5 1中加的1是空的2.3 空类的大小 class A {}; // sizeof(A) 1空类没有任何成员变量和成员函数编译器是支持空类实例化对象的对象必须要被分配内存空间才有意义大小 1Byte 字节 2.4 嵌套结构体 class A { private:double dd;int ii;int* pp; };class Test { private:int i;A a;double d;char* p; };int main() {A a1;Test test;cout sizeof(a1) endl;cout sizeof(test) endl; } // x86(32位操作系统)平台运行结果40 // x64(64位操作系统)平台运行结果48对其数 编译器默认的一个对齐数与该成员大小的较小者vs中默认的值是8 x86指针是4字节类A的大小是168与16的较小者是8。内存大小为8 16 8 4 36又因为36不是最大对齐数8的倍数所以内存向后偏移大小为 40 x64指针是8字节类A大小为248与24的较小者是8。内存大小为8 24 8 8 4848刚好是最大对齐数8的倍数所以内存大小为48 3. 为什么需要内存对齐 字节对齐主要是为了提高内存的访问效率 cpu一次能读取多少内存要看数据总线是多少位如果是16位则一次只能读取2个字节如果是32位则可以读取4个字节并且cpu不能跨内存区间访问。 假设有这样一个结构体如下 struct s {char a;int b; };假设地址空间是类似下面这样的 在没有字节对齐的情况下变量a就是占用了0x00000001这一个字节而变量b则是占用了0x00000002~0x000000005这四个字节那么cpu如果想从内存中读取变量b首先要从变量b的开始地址0x00000002读到0x0000004然后再读取一次0x00000005这个字节相当于读一个intcpu从内存读取了两次。 而如果进行字节对齐的话变量a还是占用了0x00000001这一个字节而变量b则是占用了0x00000005~0x00000008这四个字节那么cpu要读取变量b的话就直接一次性从0x00000005读到0x00000008就一次全部读取出来了。 所以说字节对齐的根本原因其实在于cpu读取内存的效率问题对齐以后cpu读取内存的效率会更快。结构体的内存对齐是拿空间来换取时间的做法 4. 类型在不同系统下所占字节数 类型win32win64linux32linux64char1111short2222int4444long4448long long8888float4444double8888void*(指针)4848
http://www.dnsts.com.cn/news/13470.html

相关文章:

  • 长沙网站建站模板软件开发图片
  • 什么网站会更有浏览量wordpress 慢途网
  • 荣成市信用建设官方网站电商平台正在建设中网站页面
  • 北京网站设计制作关键词wordpress分类标题自定义
  • 专业微信网站开发公司178网站建设
  • 苏州网站备案查询东圃那里有做网站设计的
  • 网站开发前台代码和后台代码推广计划与推广单元设置
  • 小女孩做网站网站建设与管理 孙伟
  • 学做网站要多少钱橄榄树网站建设
  • 网站中高端建设网站建设东北
  • 做告状网站index百度指数
  • 外贸网站建设资料网站建设朋友圈素材
  • 网站设计如何自学asp网站后台下载
  • 网站建设的几个要素顺德做pc端网站
  • dw如何做网站界面建材 网站 模板
  • 茶叶网站模板 html做网站赚谁的钱
  • 可口可乐网站建设想做一个自己的网站怎么做
  • 南京百度网站推广百度竞价个人开户
  • 站内推广方式网站如何注册微信公众平台 类型
  • 做调像什么网站找活中国包装创意设计网
  • 成都网站建设时代汇创域名年费价格表
  • 建设银行e房通网站建设网站怎么备案
  • 三网合一网站开发wordpress 教材主题
  • 宁波网站建设rswl网站建设 朝阳区
  • 哪里提供邢台做网站临汾网站建设电话
  • 大红门做网站的公司wordpress多媒体mp4
  • 西安网站建设中企建站网架公司推荐
  • wordpress 网站图标设置网站设计板块
  • 贵阳公司官方网站建设html5英文视频网站建设
  • 直接用ip访问网站做进出口外贸网站