2. list_for_each_safe() 原始碼例子
參考此句中, i<3 && (); 是乙個語句,
後面 () 是乙個復合語句
這句無論j=1 怎麼變,都是最後一句 true 為真。
所以真正的還是前面i<3 成立即可
/**
* list_for_each_safe - iterate over a list safe against removal of list entry
* @pos: the &struct list_head to use as a loop counter.
* @n: another &struct list_head to use as temporary storage
* @head: the head for your list.
*/原始碼:
#define list_for_each_safe(pos, n, head) \
for (pos = (head)->next, n = pos->next; pos != (head); \
pos = n, n = pos->next)
修改如下:
#define list_for_each_safe(pos, n, head) \
for (pos = (head)->next; (pos != (head) && ( ) ); \
pos = n, n = pos->next)
重點: (pos != (head) && ( )
這是乙個復合語句,後面總是true,為了讓本次迴圈只要前面true就執行下去
遍歷時用n 接住下乙個節點,防止pos 刪除操作導致找不到節點了
Puppet的一些奇技淫巧
puppet這個工具真的很神奇,先不說商業版有哪些黑科技,單是開源版本就有很多可能讓你摸不著頭腦的地方,下面來列舉一下puppet是怎麼查詢puppet server的 其實很簡單,puppet agent只要知道puppet是什麼就可以了,你可以將 puppet 寫在 etc hosts裡,比如 ...
JS陣列一些奇技淫巧 全
js陣列有許多暴露了api,作為使用者,不僅要會用還要熟練,下面給大家帶來億點點api以及使用技巧供各位嫖客 我也是?享用。先來個資料備忘錄怎麼樣 盜竊位址 本文大部分內容是以上位址,當然也有本人的補充 上圖的補充 every,some 返回的是布林值,表示每個都滿足,或者存在滿足 find fin...
一些談話的技巧 絕非奇技淫巧
要是你以為單憑熟練的技能和辛勤的工作就能在職場上出人頭地,那你就有點無知了。當然,才幹加上超時加班固然很重要,但懂得在關鍵時刻說適當的話,那也是成功與否的決定性因素。卓越的說話技巧,譬如討好重要人,更能讓你名利雙收。牢記以下十個句型,並在適當時刻派上用場,加薪與公升職必然離你不遠。雖然公升職,加薪是...