以文本方式查看主題

-  曙海教育集團論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  C語言開發(fā)  (http://www.scb-ycwb.com/bbs/list.asp?boardid=62)
----  各位對C語言結構中成員的對齊(alignment)怎樣理解?  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=62&id=2412)

--  作者:wangxinxin
--  發(fā)布時間:2010-12-10 11:47:29
--  各位對C語言結構中成員的對齊(alignment)怎樣理解?
本來覺得自已很清楚了,后來看到一個例子,又糊涂了。先看一個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 現在我無法解釋了~
主站蜘蛛池模板: 久久久午夜精品福利内容| 十八在线观观看免费视频| 亚洲AV无码一区二区三区在线播放| 亚洲毛片免费看| av色综合久久天堂av色综合在| 黑人精品videos亚洲人| 欧美又大粗又爽又黄大片视频黑人| 成人片黄网站色大片免费| 国产乱子伦精品免费无码专区| 亚洲日韩欧美一区二区三区| 97国产在线播放| 欧美激情第一区| 国产精品成人亚洲| 亚洲午夜无码久久| 免费在线视频你懂的| 日韩欧美中文字幕一区二区三区| 夫妇交换性三中文字幕| 免费人成视频在线播放| av天堂午夜精品一区二区三区| 蜜臀av性久久久久蜜臀aⅴ麻豆| 欧美日韩在线视频| 国产精品h在线观看| 九九久久精品无码专区| 成人福利免费视频| 日本在线视频播放| 啊灬啊灬啊灬快灬性| zztt668.su黑料不打烊| 牛牛在线精品免费视频观看| 国产香港日本三级在线观看| 亚洲国产三级在线观看| 99久久国产综合精品五月天| 日本一区免费观看| 全部免费a级毛片| 99久久99久久精品免费观看| 欧美人与动牲免费观看一| 国产成人无码精品久久二区三区| 亚洲日韩亚洲另类激情文学| 狠狠色香婷婷久久亚洲精品| 日本高清xxxxx| 动漫精品一区二区三区四区| 99久久精品日本一区二区免费|