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


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

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

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


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
各位對C語言結構中成員的對齊(alignment)怎樣理解?  發帖心情 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 現在我無法解釋了~

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

返回版面帖子列表

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








簽名
主站蜘蛛池模板: 国产精品9999久久久久仙踪林| 国产欧美色一区二区三区| 中国大陆高清aⅴ毛片| 欧美乱大交XXXXX疯狂俱乐部| 八戒网站免费观看视频| 香蕉啪视频在线观看视频久| 国产精品第八页| qvod激情小说| 成人性a激情免费视频| 久久天天躁狠狠躁夜夜躁综合| 欧美变态老妇重口与另类| 人妻18毛片a级毛片免费看| 美女张开腿黄网站免费| 国产伦精品一区二区三区视频金莲| 美女巨胸喷奶水视频www免费| 大学生男男澡堂69gaysex| 三男三女换着曰| 日批视频网址免费观看| 亚洲AV日韩AV永久无码色欲 | jealousvue成熟50maoff老狼| 无码国产精品一区二区免费式芒果 | 成人片黄网站A毛片免费| 久久天天躁狠狠躁夜夜avai| 欧美亚洲国产片在线播放| 亚洲欧美精品一中文字幕| 狠狠躁天天躁中文字幕无码| 再深点灬舒服灬太大了阅读| 老湿机香蕉久久久久久| 国产亚洲视频在线| 麻豆安全免费网址入口| 国产极品粉嫩交性大片| 男女一进一出无遮挡黄| 国产精品福利一区二区久久| 92国产精品午夜福利| 在线视频国产网址你懂的在线视频| 一个人看的视频在线| 怡红院在线影院| 丁香九月月小说图片区| 成人在线欧美亚洲| 丰满少妇被猛烈高清播放| 欧美日韩高清完整版在线观看免费|