<以下稍长的废文 慎入>
通常电机资工修某些程式/作业系统的课程
可能会遇到
* Stack
* Heap
这两个名词
Stack:
"程式执行前"即能"确定"我要用的程式内存大小
而配置的内存空间
称为Stack
举例来说
C语言的内建Array就是把资料放在这里
Heap:
与Stack相反
要到"执行时期"才能知道我要用的程式内存大小
举例来说
C语言中stdlib的malloc所产生的"动态阵列"
即是配置到此空间
称为Heap
以上可能不需要电资的人
只要稍微摸过C语言的人
都能知道Stack和Heap的差异
没学过的人可以这样理解
Stack: 高铁的指定席
Heap: 高铁的自由座
问题来了
Stack/Heap要如何翻成中文?
给你参考对岸的翻译
Stack: 栈/堆叠
Heap: 堆/堆积
听完有没有黑人问号??
我们看看剑桥辞典英文的解释
Stack:
a pile of things arranged one on top of another
Heap:
an untidy pile or mass of things
有没有恍然大悟
Stack和Heap的发明人(英语词发明)为啥用这两词
Stack和Heap都有"堆"的意思
Stack比较整齐,而Heap比较乱
Stack因为可以事先安排内存空间
所以能比较整齐
Heap要执行时期才能安排内存空间
想当然程式千行万行执行下来
整个是乱乱的(延伸阅读: Linklist)
而中文的"堆"一词没能说明
是整齐的堆 还是脏乱的堆
这也是语言的奥妙
也是翻译的艺术(难度)所在
可能没有高手弄出比较好的翻译
所以大家直接用Stack/Heap讲到今天
理工科里面
有很跩又很强的人
也有很谦虚又很强的人
然后我是因为火侯还不够而不敢这么跩QQ
以上
工科先生 撰