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

西安优化网站推广怎么利用网站做淘宝客

西安优化网站推广,怎么利用网站做淘宝客,课程网站如何建设方案,网站建立的意义接触过c语言的同学应该都知道字节对齐。有些时候我们很容易弄错字节对齐的方式,特别是涉及到struct(结构体)和union(联合体)时。今天我们通过详细例子来说明下struct和union的对齐规则,以便了解各种struct和…

    接触过c语言的同学应该都知道字节对齐。有些时候我们很容易弄错字节对齐的方式,特别是涉及到struct(结构体)和union(联合体)时。今天我们通过详细例子来说明下struct和union的对齐规则,以便了解各种struct和union所占字节具体计算方式。

一、基础环境信息

    我本地计算机系统各类基础类型所占字节如下:

int main() {printf("the sizeof char      is %d\n",sizeof(char));printf("the sizeof int       is %d\n",sizeof(int));printf("the sizeof unsigned  is %d\n",sizeof(unsigned));printf("the sizeof short     is %d\n",sizeof(short));printf("the sizeof long      is %d\n",sizeof(long));printf("the sizeof float     is %d\n",sizeof(float));printf("the sizeof double    is %d\n",sizeof(double));printf("the sizeof longlong  is %d\n",sizeof(long long));}

二、结构体字节对齐

2.1,结构体对齐规则

    结构体中寻找所有成员中占字节数最大成员,其余成员根据占字节数最大成员拼凑或者插入空位构成n个(n>=1)最大成员字节。

2.2,实例

    上图例子实测:

int main() {struct stu{char a;int b;short c;char d;};struct  stu s;printf("the sizeof s is %d\n", sizeof s);printf("the address a is %x\n", &s.a);printf("the address b is %x\n", &s.b);printf("the address c is %x\n", &s.c);printf("the address d is %x\n", &s.d);
}

    对于如下结构体:最大类型为b,占4字节,c,d,a拼凑占4字节,总共8字节

struct stu{int b;short c;char d;char a;
};
int main() {struct stu{int b;short c;char d;char a;};struct  stu s;printf("the sizeof s is %d\n", sizeof s);printf("the address b is %x\n", &s.b);printf("the address c is %x\n", &s.c);printf("the address d is %x\n", &s.d);printf("the address a is %x\n", &s.a);
}

 

    对于如下结构体: f为最大类型,占8字节,成员e需要以8字节对齐,所以stu1占16字节;成员b,c,d拼凑占8字节;成员a分配8字节进行对齐;总共占32字节

struct stu{int b;short c;char d;struct stu1{char e;double f;} stu1;char a;
};
int main() {struct stu{int b;short c;char d;struct stu1{char e;double f;} stu1;char a;};struct  stu s;printf("the sizeof s     is %d\n", sizeof s);printf("the address b    is %x\n", &s.b);printf("the address c    is %x\n", &s.c);printf("the address d    is %x\n", &s.d);printf("the address stu1 is %x\n", &s.stu1);printf("the address e    is %x\n", &s.stu1.e);printf("the address f    is %x\n", &s.stu1.f);printf("the address a    is %x\n", &s.a);
}

三、联合体字节对齐

3.1,联合体对齐规则

    联合体字节对齐计算非常简单,为所有成员中所占字节最大成员的字节数。

3.2,实例

    上图例子实测:

int main() {union stu{char a;int b;short c;char d;};union  stu s;printf("the sizeof s     is %d\n", sizeof s);printf("the address b    is %x\n", &s.b);printf("the address c    is %x\n", &s.c);printf("the address d    is %x\n", &s.d);printf("the address a    is %x\n", &s.a);s.b = 0b00000011000000110000001100000011;printf("the value of b    is %d\n", s.b);printf("the value of c    is %d\n", s.c);printf("the value of d    is %d\n", s.d);printf("the value of a    is %d\n", s.a);
}

 

    对于如下联合体:stu中成员stu1按照struct对齐规则占8字节,所以联合体stu占8字节。

union stu{char a;int b;short c;struct stu1{char e;int f;}stu1;char d;
};
int main() {union stu{char a;int b;short c;struct stu1{char e;int f;}stu1;char d;};union  stu s;printf("the sizeof s     is %d\n", sizeof s);printf("the address a    is %x\n", &s.a);printf("the address b    is %x\n", &s.b);printf("the address c    is %x\n", &s.c);printf("the address e    is %x\n", &s.stu1.e);printf("the address f    is %x\n", &s.stu1.f);printf("the address d    is %x\n", &s.d);}

 

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

相关文章:

  • 网站建设需要什么技能怎么搭建wordpress
  • 网站关键词排名怎么优化济南网站搭建公司
  • 网站和自媒体都可以做app网站建设阿里巴巴
  • 帝国做网站网站类别页面怎么做
  • 网站功能模块设计婚恋网站 模板
  • 做网站后台需要什么知识做企业网站支付功能
  • 网站 被 抄袭网站优秀网站地址
  • python 网站开发 普及在线公司网站查询
  • 北京网站开发培训中心设计本网站怎么样
  • 推广软文代发湘潭关键词优化报价
  • 金华市建设技工学校教育培训网站cc0图片素材网站
  • 怎么给别人做网站网站网站建设哪家售后做的好
  • 一个ip地址上可以做几个网站做网站公司关键词
  • 建设网站商城网站代码管理
  • 建设网站有什么特点特色邢台建网站
  • 免费广告设计制作网站网站域名包括哪些
  • 集团酒店网站建设广东哪家网站建设网页设计服务
  • 阿里云备案 网站备案搜索推广方案
  • 网站设计师对应的专业响应式网站框架
  • 手机网站大全排行网站里的横幅广告怎么做
  • wordpress用户同步百度seo排名
  • 做图在哪个网站上找wordpress什么模块
  • 做ppt哪个网站的图片好优化方案物理必修三电子版
  • 网站查询功能 技术支持 中企动力网站建设初衷
  • 网站重构百度权重查询网站
  • 查找网站域名wordpress设置用户注册资料
  • 网站后台内容编辑器下载做家电维修网站能接到单吗
  • 网站开发第三方支付网站空间到期怎么办
  • 天津房价哈尔滨seo服务
  • 营口网站开发公司域名是企业的网上商标