ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

struct 结构体分析

2022-06-17 20:35:15  阅读:153  来源: 互联网

标签:分析 struct Zp member StructAlig sizeof type 结构


struct分析

1.无成员的空结构体size为 1byte

2.通过/zp可以调整对齐值,默认是8字节
//设编译对齐设定值为Zp
//设成员变量的类型为 member type
//设成员变量在结构体内的偏移量为member offset
//member offset % min(Zp,sizeof(member type)) == 0
//整个结构体变量占用内存的长度为StructSize
//定义结构体自身的对其值为StructAlig
//StructAlig = max(sizeof(member1 type),sizeof(member2 type),sizeof(member3 type).....sizeof(memberN type))
//必须满足:
StructSize % min (StructAlig,Zp) ==0
//网络数据传输时,通常把Zp设为1

struct tagPerson
{
  char szName[5];  //+0
  int nHeight;     //+8   
  char cGender;    //+16
  double dblWeight;//+24
  short nAge;   //+32
};
//sizeof tagPerson ==32
int main(int argc, char* argv[])
{

  
  struct tagPerson per = {
    "jack",
     185,
     'M',
    80.0,
    23
    };
}


结构体嵌套

设成员结构体变量的偏移量为StructOffset
设该成员结构体变量的自身的对齐值为StructAlig
必须满足
StructOffset % min(Zp,StructAlig) == 0

数据关系

进程查线程
线程查进程

标签:分析,struct,Zp,member,StructAlig,sizeof,type,结构
来源: https://www.cnblogs.com/doubleconquer/p/16386958.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有