| Tony Huang's profileSouline PLUS planBlogListsNetwork | Help |
研究Linux内核源代码的成果之一前两天研究Linux的源代码,发现了一个非常绝妙的实现。
在程序设计的过程中,最经常用到的数据结构之一可能就是链表了,在Linux内核里面有一个非常绝妙的实现:
struct link_head
{
struct link_head * prev, * next;
};
内核中有很多数据类型都需要用链表连接起来,这里做一个使用的例子
struct mystruct
{
struct link_head link;
char * m_str;
int * m_int;
};
而对于链表的所有操作都可以应用到mystruct上去。
struct mystruct mMystruct;
这里&mMystruct == &mMystruct.link,所以对于所有针对(struct link_head *)的操作,都可以应用在(struct mystruct *)上 25 December 先把过去的一些梦纪念一下梦一:
有天我能够和我的妻子一起无忧无虑地生活在一片世外桃源中,一起慢慢便老。
破:1) 我暂时找不到女朋友,更不用说妻子了
2) 世外桃源不是那么容易找的
梦二:
在某一天有女孩子送我巧克力
破:其实,有一次本来已经非常接近了(在我生日的时候有女孩子送我杯子),然而事实是她不知道杯子有特别的含义……
还有就是无论在哪个时候,我身边总是有很多帅哥的,因为毕竟像我这样的不会和帅哥形成竞争嘛:)
梦三:
有一天,Stanford发了一封信给我,说我已经被Stanford录取了。
破:据我了解,只有在交大电院可以取得前10名的学生,才会去申请Stanford的研究生
梦四:
有一天,我的Idea改变了整个世界。
破:现在的社会越来越复杂,个体越来越渺小,个人英雄的时代已经一去不复返了。
我的梦太多了,或许多个我才能实现我的梦吧:
梦五:
有一天,我可以写:
class TonyHuang {};
list<TonyHuang> lst;
int intCnt;
cout<<"Please input number of instances of TonyHuang class to realize all the dreams: ";
cin>>intCnt;
for(int i = 0; i < intCnt; i ++)
{ lst.push_back(*(new TonyHuang())); }
破:我不是一个类,我是一个单体。我不可能像Smith一样,只可能像Neo一样,世界上只有一个我存在。 |
|
|