本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11094625
Jack:我悟透了,我天下无敌了。
我:最近睾丸酮吃多了吗?
Jack:我们来讨论下计算机内存的使用吧。
我:你最近练了什么绝招要来显摆显摆?
Jack:我们都知道“栈”(stack)和“堆”(heap)的概念。
我:是的。
Jack:一个程序会用到的栈的空间大小在编译时已经决定了,而堆的大小会在运行时动态分配。
我:是的。
Jack:所以,嵌入式裸板驱动程序是不会有malloc这样的系统调用的。
我:是的,所以,复杂的数据结构如链表、树啥的,对于嵌入式裸板驱动程序没有任何意义,它们本身也没有啥对象需要用这种高级数据结构来描述。
Jack:heap的概念是在1975年左右被提出来(参见《计算机程序设计艺术 2.5》,与爱因斯坦的《相对论》齐名)。所以,在1975年以前的程序在数据结构的描述能力上是比较有限的。
我:那你想过,为什么指针那么让人蛋疼,却仍然有那么多人在使用呢?
Jack:联系一下上面讨论的,思考一下,自然而然就明白了。