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

重庆公司网站建设北排建设公司官网

重庆公司网站建设,北排建设公司官网,社区电商平台排行榜,网页是什么样子的1. 结构体的存储 结构体各个成员的地址是连续的结构体变量的地址是第一个成员的地址 2. 64位操作系统8字节对齐 结构体的总字节大小是各个成员字节的总和,字节的总和需要是最宽成员的倍数结构体的首地址是最宽成员的倍数结构体各个成员的偏移量是该成员字节的倍数…

1. 结构体的存储

  • 结构体各个成员的地址是连续的
  • 结构体变量的地址是第一个成员的地址

2. 64位操作系统8字节对齐

  • 结构体的总字节大小是各个成员字节的总和,字节的总和需要是最宽成员的倍数
  • 结构体的首地址是最宽成员的倍数
  • 结构体各个成员的偏移量是该成员字节的倍数,否则填充空字节

例子1:

#include <string.h>
#include <stdlib.h>
#include <stdio.h>struct A
{int a; //4 char b; //1 short c; //2 float d; //4 }a;int main(int argc, const char *argv[])
{printf("a=%p\n", &a);printf("a.a=%p\n", &a.a);printf("a.b=%p\n", &a.b);printf("a.c=%p\n", &a.c);printf("a.d=%p\n", &a.d);printf("sizieof(a)=%ld\n", sizeof(a));return 0;
}          

计算

运行结果

a=0x55b0037eb018
a.a=0x55b0037eb018
a.b=0x55b0037eb01c
a.c=0x55b0037eb01e
a.d=0x55b0037eb020
sizieof(a)=12

例子2:

#include <string.h>
#include <stdlib.h>
#include <stdio.h>struct A
{int *a; //8 char b; //1 double c; //8 long d; //8 } s1; int main(int argc, const char *argv[])
{printf("s1=%p\n", &s1);printf("s1.a=%p\n", &s1.a);printf("s1.b=%p\n", &s1.b);printf("s1.c=%p\n", &s1.c);printf("s1.d=%p\n", &s1.d);printf("sizieof(s1)=%ld\n", sizeof(s1));return 0;
}  

计算

运行结果

s1=0x55e754e4e040
s1.a=0x55e754e4e040
s1.b=0x55e754e4e048
s1.c=0x55e754e4e050
s1.d=0x55e754e4e058
sizieof(s1)=32

例子3:

#include <string.h>                                                                       
#include <stdlib.h>
#include <stdio.h>struct S
{char a[5]; //int b; //} s3; int main(int argc, const char *argv[])
{printf("s3=%p\n", &s3);printf("s3.a=%p\n", &s3.a);printf("s3.b=%p\n", &s3.b);printf("sizieof(s3)=%ld\n", sizeof(s3));return 0;
}

计算

运行结果

s3=0x55da08b43018
s3.a=0x55da08b43018
s3.b=0x55da08b43020
sizieof(s3)=12

3. 32位操作系统,4字节对齐:

  • 结构体的总字节大小是各个成员字节的总和,字节的总和需要是最宽成员的倍数
    • 如果最宽成员是1,则是1的倍数
    • 如果最宽成员是2,则是2的倍数
    • 如果最宽成员是4,8,则是4的倍数
  • 结构体的首地址是最宽成员的倍数
  • 结构体各个成员的偏移量是该成员字节的倍数,否则填充空字节
    • 如果成员字节是1,则偏移量是1的倍数
    • 如果成员字节是2,则偏移量是2的倍数
    • 如果成员字节是4,8,则偏移量是4的倍数

例子4:

#include <string.h>
#include <stdlib.h>
#include <stdio.h>struct S5
{char a; //int *b; double c;long d;}s5 ;struct S6
{char e[5];struct S5 s5; int f;}s6;int main(int argc, const char *argv[])
{printf("s6.e=%p\n", &s6.e);printf("s6.s5.a=%p\n", &s6.s5.a);printf("s6.s5.b=%p\n", &s6.s5.b);                                                     printf("s6.s5.c=%p\n", &s6.s5.c);printf("s6.s5.d=%p\n", &s6.s5.d);printf("s6.f=%p\n", &s6.f);printf("sizieof(s6)=%ld\n", sizeof(s6));return 0;
}
~    

计算

运行结果

s6.e=0x565cf040
s6.s5.a=0x565cf048
s6.s5.b=0x565cf04c
s6.s5.c=0x565cf050
s6.s5.d=0x565cf058
s6.f=0x565cf05c
sizieof(s6)=32

http://www.yayakq.cn/news/988372/

相关文章:

  • 临沂做网站选盛誉公司微网站制作
  • 淘宝上面如何做网站凡科网的网站建设好用吗
  • 东莞做网站排名优化推广wordpress 创建文章
  • 自己可以做网站服务器吗社交网站页面设计
  • 安阳信息港网站阳江网红打卡点
  • 天津公司建设网站七台河哈尔滨网站建设
  • 本地电脑如何做网站服务器网站建设全部流程包括备案
  • 想要做个公司网站整站采集wordpress
  • 新网站做外链谢馥春网站建设的优势
  • 昆明网站运营公司有哪些网站建设前的市场分析怎么写
  • 公司宣传片广告网站优化外链
  • 宁波网站优化公司哪家好网站推广主要用的软件
  • 网站里面如何做下载的app网站建设公司圣辉友联
  • 网站建设查看框架的源代码建网站和做微信哪个好
  • linux版网站开发秦皇岛视频优化推广
  • 在线做ppt模板下载网站网站建设问题
  • 资阳建设局网站手机广西网
  • 建设部166号令住建部网站建设网站的程序
  • wordpress免费建站教程wordpress破解主题
  • 泉州最专业微信网站建设公司下载网址
  • 安徽华建建设工程公司网站wordpress网站打包app
  • 湘潭网站开发公司威龙电子商务做的网站
  • 这几年做哪些网站能致富wordpress没了
  • 本地58同城招聘网找工作外贸seo建站
  • 在线字体设计网站常平小学网站建设
  • 电商网站建设 教学总结建设银行网站优点
  • 织梦网站logo怎么换修改wordpress中附件上传大小
  • 国贸行业 网站建设wordpress 头像上传路径
  • 网站签到的作用兰州网站优化公司
  • 建设游戏网站济南市住建局官方网站