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

初始化顺序与字节对齐

1 全局变量和全局静态变量的初始化顺序是未定义的,所以不能够在全局变量初始化话的时候,建立他们之间的依赖关系。

  在single模式下了,静态变量声明为局部变量以防止初始化顺序的未定义 导致 静态变量的值错误。

2.类初始化的时候

 类成员变量的初始化顺序,是按照变量成员的声明顺序,而不是初始化参数列表的顺序,

所以在建立初始化参数列表的时候,

最好不要建立需要初始化参数之间的依赖关系,

否则可能碰到不可预期的问题。

 

 

字节对齐的问题

1).从结构体外部来看,结构体变量的首地址能够被其最宽基本成员的大小整除;从结构体内部来看,它的第一个数据成员的地址相对于整个结构体首地址的偏移量为0,也就是说,结构体的第一个数据成员存放在偏移量为0的地方;
2).结构体中的每个数据成员的有效对齐值都取其自身对齐值和指定对齐值中的较小的那个对齐值;或者说是,结构体中的每个数据成员相对于结构体首地址的偏移量都是该数据成员大小和指定对齐值中较小的那个值(或有效对齐值)的整数倍,如有需要,编译器会在数据成员之间加上填充字节;
3).如果结构体中还有嵌套的结构体或结构体变量,那么就要把这些嵌套进去的结构体或结构体变量拆成基本类型成员,并取其最长的基本类型成员的对齐方式;
4).结构体整体的有效对齐值必须为其最宽基本类型成员大小的整数倍;或者说是,结构体整体的大小为结构体中最宽基本类型成员大小的整数倍,如有需要,编译器会在最末一个成员之后加上填充字节;换句话说是,结构体整体的有效对齐值按照结构体中最宽基本类型成员的大小和指定对齐值中较小的那个值进行;

struct{

  char a; 0

       int   b; 4-7

  double c;8-15

  char d; 16

}

struct 0-31

 

转载于:https://www.cnblogs.com/voya/p/5018800.html

相关文章:

  • 【转】How to resolve ORA-19706 error when select from dblink
  • 无线网络安全标准
  • 2)队列
  • 刚开通,记录一下
  • excel怎么固定第一行
  • zsh解决perl: warning: Setting locale failed.
  • svn checkout的时候, 不要将以此目录为工程的netbeans等ide打开
  • Error: ShouldNotReachHere()
  • exports和module.exports
  • apk当安装程序将文件复制到手机自带的指定文件夹
  • 接口测试培训:HTTP协议基础 1
  • 动态计算UITableViewCell高度详解
  • hibernate(四)ID生成策略
  • 【iCore3 双核心板】例程十四:FATFS实验——文件操作
  • 配置Server.xml
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Apache的基本使用
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java读取Properties文件的六种方法
  • mongo索引构建
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue--数据传输
  • 阿里云Kubernetes容器服务上体验Knative
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 前端学习笔记之观察者模式
  • 如何利用MongoDB打造TOP榜小程序
  • 深入浅出webpack学习(1)--核心概念
  • 使用 5W1H 写出高可读的 Git Commit Message
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​ssh免密码登录设置及问题总结
  • (003)SlickEdit Unity的补全
  • (06)Hive——正则表达式
  • (2)Java 简介
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (bean配置类的注解开发)学习Spring的第十三天
  • (k8s中)docker netty OOM问题记录
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (六)软件测试分工
  • (转) Face-Resources
  • (转)四层和七层负载均衡的区别
  • (转载)利用webkit抓取动态网页和链接
  • ./configure、make、make install 命令
  • .describe() python_Python-Win32com-Excel
  • .NET : 在VS2008中计算代码度量值
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core 依赖注入的基本用发
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net2005怎么读string形的xml,不是xml文件。
  • .NetCore 如何动态路由
  • .NET分布式缓存Memcached从入门到实战