• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            kenlistian

            厚積薄發. 勤為槳,思為帆

               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理 ::
              73 隨筆 :: 4 文章 :: 22 評論 :: 0 Trackbacks


            關于偏移量的宏定義

            #define offsetof(s,m)   (size_t)&(((s *)0)->m)

            s是一個結構名,它有一個名為m的成員(s和m 是宏offsetof的形參,
            它實際是返回結構s的成員m的偏移地址


            (s *)0 是騙編譯器說有一個指向類(或結構)s的指針,其地址值0 

            &((s *)0)->m   是要取得類s中成員變量m的地址 
                      因基址為0,這時m的地址當然就是m在s中的偏移

            最后轉換size_t 型,即unsigned int。

            有例子如: 
              struct   AAA 
              { 
                int   i; 
                int   j; 
              }; 
              
              struct   AAA   *pAAA; 
              pAAA = new   AAA; 
              這時,pAAA實際上是一個Pointer, 指向某一確定的內存地址,
                 如0x1234; 
              而pAAA->i 整體是一個int型變量,其地址是&(pAAA->i),
              '&'為取址運算符; 
              那么&(pAAA->i)一定等于0x1234,因 i 是結構體AAA的第一個元素。 
              而&(pAAA->j)一定是0x1234 + 0x4 = 0x1238; 因為sizeof(int) = 4; 
              
              這個做法的巧妙之處就是:它把“0”作為上例中的pAAA,那么&(pAAA->j)就是j的 
              offset啦, 

              解析結果是: 
              (s*)0,將 0 強制轉換為Pointer to "s"   
              可以記 pS = (s*)0,pS是指向s的指針,它的值是0; 
              那么pS->m就是m這個元素了,而&(pS->m)就是m的地址,
              就是offset啦    




            posted on 2008-10-27 17:16 kenlistian 閱讀(690) 評論(0)  編輯 收藏 引用 所屬分類: cpp
            99久久婷婷国产一区二区| 久久99国产综合精品免费| 久久亚洲私人国产精品| 一本色道久久88精品综合 | 久久久久久青草大香综合精品| 久久精品国产精品亚洲下载| 国产精品久久久久jk制服| 伊人久久大香线蕉精品| 精品久久久久中文字幕一区| 久久婷婷成人综合色综合| 99久久精品免费看国产一区二区三区| 91久久国产视频| 99久久精品免费看国产一区二区三区| 色88久久久久高潮综合影院| 亚洲精品乱码久久久久久蜜桃不卡| 色婷婷综合久久久久中文| 日韩人妻无码一区二区三区久久| 国产精品成人无码久久久久久| 午夜视频久久久久一区 | 成人妇女免费播放久久久| 国产精品美女久久久网AV| 久久精品国产亚洲AV香蕉| 久久中文娱乐网| 亚洲午夜久久久久久久久电影网 | 久久免费香蕉视频| 日本欧美久久久久免费播放网| 久久九九免费高清视频| 国产精品9999久久久久| 色妞色综合久久夜夜| 久久久久国产精品人妻| 日日狠狠久久偷偷色综合免费| 一本色道久久88加勒比—综合| 久久精品国产亚洲AV电影| 伊人色综合九久久天天蜜桃| 国产99久久久国产精免费| 好属妞这里只有精品久久| 亚洲精品蜜桃久久久久久| 久久亚洲精品无码aⅴ大香| 色婷婷综合久久久久中文字幕| 久久久久久久国产免费看| 99久久国产亚洲高清观看2024|