看板 C_and_CPP 關於我們 聯絡資訊
想請問一下前輩們 問題有點長...不好意思了 問題: 當我在主程式宣告一個函式時 系統是會預先配置一塊固定的記憶體空間大小給這個函式嗎? 還是是要看函式內部資料所使用的記憶體加總呢? 假如是一開始會先配置(如果這個成立的話) 那又假如我函式內部是有遞迴的程式碼 萬一遞迴所需求的記憶體超過一開始配置的話 系統會再自動配置嗎?還是就這樣爆開了~ 觀念有點不太清楚...先謝謝各位指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.231.109.23
legnaleurc:函式沒空間吧 ... 只有一個指標指向 entry point 11/04 13:22
VictorTom:嚴格的來說還是有空間, 指標指向的entry point就是那段 11/04 13:23
VictorTom:函式佔用空間的起始點不是嗎@_@" 11/04 13:23
twotwoone:到底想問什麼 11/04 13:24
VictorTom:像這個case似乎也是nested func, 之前的文也有人推文討 11/04 13:24
VictorTom:論認為nested func會省記憶體, 不過小弟不認為會就是因 11/04 13:25
VictorTom:為func也是佔用mem的, nested的好處總覺得只有scope. 11/04 13:25
VictorTom:另外就算有遞迴, 會一直佔用新空間的應該也是stack, 或 11/04 13:26
VictorTom:者func內自己有其他mem的耗用, 印象中func body除非被 11/04 13:26
VictorTom:展開, 不然mem裡只需要一份@_@" 11/04 13:27
VictorTom:哪天有空再拿VC disasm一個nested func的例子好了Orz 11/04 13:27
snoopy0907:謝謝,大概知道了..因為我把函式想成像一個物件~ 11/04 13:40
snoopy0907:而其實函式只是一個敘述的集合..沒有佔實體空間 11/04 13:41
snoopy0907:真的會佔使用到空間的是內部的指令 11/04 13:42
QQ29:請問V大 nested function是不是VC不能用? 之前想試試看 11/04 13:46
QQ29:都說"區域函式定義不合法"??是我搞錯了嗎 11/04 13:46
VictorTom:C++嗎??剛用DevC++也不行, 寫C的話就可以了@_@" 11/04 13:59
QQ29:恩~之前是印象中看過奇怪為啥要這樣在local寫function 11/04 14:01
QQ29:自己想試試看卻都一直出錯 以為我記錯了.... 11/04 14:01
QQ29:之前是想測試為啥說function預設都是extern..但只限定global 11/04 14:02
QQ29:卻找不到反例 測不出來@@ 11/04 14:02