日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

宏定义函数container_of的解释

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 宏定义函数container_of的解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從kernel里面摳出的一些與宏container_of有關的代碼,如下:





1、此宏作用是從結構體的某元素(member)出發,得到結構體的首地址;


2、container_of的參數解釋

(1)type:指的是(包含member這個成員元素的結構體)所對應的類型,即(我們要獲取首地址的那個結構體)所對應的類型;

(2)member:指的是結構體中的某個元素的名字,我們就是從這個元素出發,得到結構體的首地址。注意這個元素在內核中可能也是結構體。

(3)ptr:指向結構體中member這個元素的指針。


3、offsetof的解釋

(1)格式這樣看比較明顯(->優先級比&高):#define offsetof(TYPE, MEMBER) ? ( ? ?(size_t) ? ? ?&( (TYPE *)0 )->MEMBER? ? ?)

  • 首先(TYPE *)0 ,然后(TYPE *)0 ->MEMBER,接著&((TYPE *)0 ->MEMBER),最后強制類型轉換為size_t類型。

(2)進一步解釋


  • 即先將0地址強制轉換為(要獲取首地址的那個)結構體的指針;
  • 然后獲取元素member,進而取其地址。由于結構體的指針指向地址為0,那么元素member的地址就是member元素偏移結構體首地址的偏移量。
  • 由于此時偏移量是以地址形式(就一個數字,或者說指針)呈現的,我們要把它改成int類型,所以來一個強制類型轉換。

4、container_of解釋

(1)const ? typeof( ?((type *)0)->member )* ? __mptr = (ptr)

首先獲取結構體元素member的的類型,然后定義一個指向此類型的指針_mptr,并賦值為ptr;

(2)(type *) ?( ?(char *)__mptr ? - ?offsetof(type, member) ? )

首先將_mptr強制轉化為char*類型,然后減去偏移量,最后強制轉換為結構體類型指針,即返回了結構體首地址。

這里之所以轉換為char*類型,是因為減去偏移量時,偏移量是多少,那就減去多少字節。


總結

以上是生活随笔為你收集整理的宏定义函数container_of的解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 深夜视频在线免费观看 | 亚洲麻豆av | 国产人妻互换一区二区 | 偷拍老头老太高潮抽搐 | 91欧美激情一区二区三区成人 | 姐姐av | 亚洲AV无码成人精品区麻豆 | 五月婷网站 | 亚洲精品一级片 | 中文字幕电影一区二区 | 男女做受视频 | 亚洲AV无码成人精品区东京热 | 91香蕉国产在线观看 | 日韩爱爱片 | 亚洲色图自拍 | 日韩一区在线免费观看 | 国产熟女一区二区丰满 | 日本丰满大乳奶做爰 | 欧美日韩精品一区二区三区 | 熟女高潮一区二区三区视频 | av永久| 成人午夜激情 | 亚洲大尺度在线 | ,一级淫片a看免费 | 亚洲插插插 | 7799精品视频 | 用力使劲高潮了888av | 亚洲精品20p | 亚洲免费在线视频观看 | hs视频在线观看 | 欧美国产日韩一区 | 欧美aaaaaaa| 蜜桃99视频一区二区三区 | 国产精品美女久久久久久久久 | 91国内精品野花午夜精品 | 在线视频观看你懂得 | 大胸美女无遮挡 | 成人免费无码大片a毛片 | 岛国中文字幕 | 天堂中文在线播放 | 欧美成人区| 超污视频在线观看 | 91美女视频网站 | 播播成人网 | 欧美色婷婷 | 成人不卡av | 欧美黄色大片网站 | 日本不卡不卡 | 婷婷亚洲综合五月天小说 | 成人自拍视频网 | 日韩精品一区二区电影 | 翔田千里一区二区三区av | 日本免费网站在线观看 | 日韩一区二区中文字幕 | 日韩精品亚洲一区 | 国产在线精 | 日本免费三区 | 国产一区亚洲一区 | 国产一级免费在线观看 | jizz在线免费观看 | 成人午夜精品一区二区三区 | 国产精品欧美大片 | 日本激情电影 | 国产视频在线免费观看 | 久久久久亚洲 | 色综合五月| 国产综合久久久久久鬼色 | 1024金沙人妻一区二区三区 | 男女免费观看视频 | 黑人一区二区 | 成人激情综合 | 国产精品自拍网站 | 欧洲一区二区三区四区 | 天天干天天摸天天操 | 一本色道久久综合狠狠躁的推荐 | 久久久久人妻一区精品 | 一出一进一爽一粗一大视频 | 99er在线观看| 张津瑜国内精品www在线 | 一级免费片 | 好男人www在线视频 我们的2018在线观看免费高清 | 免费看国产片在线观看 | 久久久久免费视频 | 欧美黄色大片免费观看 | 午夜精品视频在线 | 一路向西在线看 | 五月六月丁香 | 91微拍| 日韩午夜在线播放 | 夜夜嗨av一区二区三区免费区 | 免费h片在线观看 | 射婷婷 | 天天干天天看 | av网站在线观看免费 | 国产不雅视频 | 91免费版黄 | 日韩女人性猛交 | 久久国产亚洲精品无码 | 日韩爱爱片 |