<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發(fā)語言培訓專區(qū)C語言開發(fā) → 各位對C語言結構中成員的對齊(alignment)怎樣理解?


      共有7730人關注過本帖樹形打印

    主題:各位對C語言結構中成員的對齊(alignment)怎樣理解?

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    各位對C語言結構中成員的對齊(alignment)怎樣理解?  發(fā)帖心情 Post By:2010-12-10 11:47:29

    本來覺得自已很清楚了,后來看到一個例子,又糊涂了。先看一個WATCOM給出的表:(ZP1表示按一個字符對齊) zp1 zp2 zp4 zp8 zp16 sizeof(member) \--------------------------------------- 1 | 0 0 0 0 0 2 | 0 2 2 2 2 4 | 0 2 4 4 4 8 | 0 2 4 8 8 16 | 0 2 4 8 16 x | aligned to largest member 看一段代碼: #include #include typedef struct memo_el { char date[9]; struct memo_el *prev,*next; int ref_number; char sex; } memo; main( ) { printf( "Offset of %s is %d\n", "date", offsetof( memo, date ) ); printf( "Offset of %s is %d\n", "prev", offsetof( memo, prev ) ); printf( "Offset of %s is %d\n", "next", offsetof( memo, next ) ); printf( "Offset of %s is %d\n", "ref_number", offsetof( memo, ref_number ) ); printf( "Offset of %s is %d\n", "sex", offsetof( memo, sex ) ); printf( "Size of %s is %d\n", "memo", sizeof( memo ) ); printf( "Number of padding bytes is %d\n", sizeof( memo ) - (offsetof( memo, sex ) + sizeof( char )) ); return 0; } 輸出: 16位zp1:(毫無疑問) Offset of date is 0 Offset of prev is 9 Offset of next is 11 Offset of ref_number is 13 Offset of sex is 15 Size of memo is 16 Number of padding bytes is 0 16位 zp2、4、8結果都一樣: Offset of date is 0 Offset of prev is 10 Offset of next is 12 Offset of ref_number is 14 Offset of sex is 16 Size of memo is 18 Number of padding bytes is 1 如果再把成員改一個長整類型, typedef struct memo_el { char date[9]; struct memo_el *prev,*next; long int ref_number; char sex; } memo; 結果在16位ZP2-8都是這樣: Offset of date is 0 Offset of prev is 10 Offset of next is 12 Offset of ref_number is 16 Offset of sex is 20 Size of memo is 24 Number of padding bytes is 3 現(xiàn)在我無法解釋了~

    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    各位對C語言結構中成員的對齊(alignment)怎樣理解?








    簽名
    主站蜘蛛池模板: 四虎永久免费地址ww1515 | 99久久国产综合精品swag| 日本一卡2卡3卡四卡精品网站| 亚洲色成人www永久网站| 美女福利视频一区二区| 国产精品久久久久久久久久免费| 一级毛片视频在线观看| 日本在线看片免费人成视频1000| 亚洲精品乱码久久久久久自慰| 精品国产一区二区三区不卡| 国产成人综合洲欧美在线| a国产乱理伦片在线观看夜| 成年人性生活片| 亚洲av成人一区二区三区| 欧美日韩亚洲一区| 公粗一晚六次挺进我密道视频| 色综合久久综合网观看| 国产精品夜间视频香蕉| 一本到中文字幕高清不卡在线| 拔擦拔擦8x华人免费久久| 亚洲av日韩av天堂影片精品| 欧美日韩中文字幕在线视频| 制服丝袜中文字幕在线| 老司机午夜在线视频免费观| 国产欧美在线观看一区二区| 99精品国产三级在线观看 | 免费边摸边吃奶边叫床视频| 美雪艾莉丝番号| 国产成人亚洲精品无码av大片| 97sese电影| 在线观看国产91| 东北大坑第二部txt| 手机在线观看精品国产片| 亚洲AV无码乱码国产精品| 欧美一级视频在线观看欧美| 亚洲视频在线观看免费| 男人添女人30分钟免费| 四虎永久在线观看免费网站网址| 荡女安然的yin乱生活| 国产激情视频在线| 国产成人精品午夜二三区|