亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【備戰春招】第3天-C01結構體及相關

標簽:
C
  • 课程名称:Linux C语言结构体
  • 课程链接:http://www.xianlaiwan.cn/learn/409
  • 章节名称:
    • 第4章:共用体
      • 4-1 共用体
    • 讲师姓名:雷过就跑
  • 时间:2023-02-07 23:30

课程内容

  • 共用体:关键字union
    • 作用:让几个不同类型的变量,共享同一个内存地地
    • 好处:节省空间
    • 缺点:同一时刻,仅能存取一个成员
    • 其长度,是其成员类型中最大的长度的长度值
  • 结构体空间大小问题
    • 这里面涉及到一字节对齐问题,这个对齐可以帮助计算机快速读写
    • 结构体空间大小计算公式
      • 结构体中最后一个成员的偏移量,加该成员大小,再加上填充的字节数
      • 偏移量:某一个成员的实际地址和这个结构体首地址的距离
      • struct data {int a; char b; int c;}
        • 结构体在进行字节对齐的时候,有这样一个准则,每个成员相对于首地址的偏移量,都要是当前成员所占内存大小的整数倍,如果不是整数倍就要加上填充字节
        • 成员a的偏移量就是0,因为是第一个成员
        • 成员b的偏移量是4,其本身大小为1字节,4是1的整数倍,可以不用填充字节
        • 成员c的偏移量是5,其本身大小为4,5不是其整数倍,为了满足整数倍关系,要在b成员后面填充字节,数量是3字节,从而使用c的偏移量为8,8是4的整数倍
        • 最后还要看结构体总大小,是不是结构体中最宽的成员大小的整数倍,如果不是要在最后一成员后填充字节,从而满足整数倍关系

学习心得

没想到结构体的大小计算模式这么复杂
共用体
共用体成员地址

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
9
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消