<以下稍長的廢文 慎入>
通常電機資工修某些程式/作業系統的課程
可能會遇到
* 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
以上
工科先生 撰