看板 C_and_CPP 關於我們 聯絡資訊
想請問一下 我在下邊這個連結看到Linux linked list的實作 http://rdc.taobao.com/blog/cs/?p=1675 但是下面這行 struct user_t* next = container_of(&(g_user_list.next->node), struct user_t, node); 我不太懂為什麼next可以指到node 是有什麼其他小技巧之類的嗎?? -- http://blog.carlcarl.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.184.171
IrisXIII:關鍵應該是 container_of, google 資料非常多 02/27 15:49
purpose:compound statement in parentheses 文法錯誤,GCC 才能用 02/27 18:42
purpose:淘寶那篇文章下面有篇 ibm 的鏈表分析連結,裡面有個函數 02/27 23:37
purpose:list_entry 應該就是淘寶那篇用 g_user_list 想做的事 02/27 23:39
purpose:範例 http://codepad.org/MrukRDdC 02/27 23:39
hpps:好像是知道結構中某個欄位的位址,你可以得出結構的開頭位址 02/27 23:53
cobrasgo:這是kernel的東西,你先搞懂container_of這個macro吧 02/28 21:29
WPC001:就知道資料的結構, 然後位置做了減法的運算, 就算出來啦 02/28 23:18
carlcarl:我知道它整個的作法 我只是覺得next可以指到node很奇怪 03/01 01:36
linotwo:筆誤吧。如果還有疑問請去問該篇原作者。 03/01 06:27
purpose:其實你編譯看看就知道文法對不對了 03/01 06:58
purpose:http://codepad.org/lMhQASiv 03/01 07:03
carlcarl:了解 感謝!! 03/02 03:18