• <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

            厚積薄發(fā). 勤為槳,思為帆

               :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理 ::
              73 隨筆 :: 4 文章 :: 22 評(píng)論 :: 0 Trackbacks


            關(guān)于偏移量的宏定義

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

            s是一個(gè)結(jié)構(gòu)名,它有一個(gè)名為m的成員(s和m 是宏offsetof的形參,
            它實(shí)際是返回結(jié)構(gòu)s的成員m的偏移地址


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

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

            最后轉(zhuǎn)換size_t 型,即unsigned int。

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

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




            posted on 2008-10-27 17:16 kenlistian 閱讀(688) 評(píng)論(0)  編輯 收藏 引用 所屬分類: cpp
            国产69精品久久久久777| 欧美精品九九99久久在观看| 国内精品免费久久影院| 四虎影视久久久免费| 久久精品久久久久观看99水蜜桃| 久久国产色AV免费观看| 久久精品中文字幕一区| 色偷偷偷久久伊人大杳蕉| 国产精品九九久久免费视频| 久久热这里只有精品在线观看| 国产精品久久影院| 日批日出水久久亚洲精品tv| 久久人人爽人人爽人人AV东京热| 久久夜色精品国产亚洲| 久久久久久精品无码人妻| 天天爽天天爽天天片a久久网| 久久久久亚洲AV无码专区首JN| 91性高湖久久久久| 老男人久久青草av高清| 99久久综合狠狠综合久久| 欧美一级久久久久久久大| 久久精品中文无码资源站| 亚洲AV伊人久久青青草原| 久久精品一区二区三区不卡| 久久久久国色AV免费看图片| 亚洲日本va中文字幕久久| 久久AⅤ人妻少妇嫩草影院| 国产精品久久午夜夜伦鲁鲁| 97精品伊人久久大香线蕉| 国产女人aaa级久久久级| 国产精品99精品久久免费| 久久精品成人欧美大片| 久久99精品国产麻豆不卡| 精品免费tv久久久久久久| 色综合久久综合中文综合网| 久久久久久国产a免费观看不卡 | 人妻精品久久久久中文字幕| 97久久综合精品久久久综合| 久久精品国产亚洲av麻豆图片| 久久亚洲中文字幕精品一区| 国产成人综合久久久久久|