[問題] 函式的一個觀念問題

看板C_and_CPP (C/C++)作者 (我是男的喔~^0^")時間16年前 (2009/11/04 13:20), 編輯推噓5(5016)
留言21則, 5人參與, 最新討論串1/1
想請問一下前輩們 問題有點長...不好意思了 問題: 當我在主程式宣告一個函式時 系統是會預先配置一塊固定的記憶體空間大小給這個函式嗎? 還是是要看函式內部資料所使用的記憶體加總呢? 假如是一開始會先配置(如果這個成立的話) 那又假如我函式內部是有遞迴的程式碼 萬一遞迴所需求的記憶體超過一開始配置的話 系統會再自動配置嗎?還是就這樣爆開了~ 觀念有點不太清楚...先謝謝各位指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.231.109.23

11/04 13:22, , 1F
函式沒空間吧 ... 只有一個指標指向 entry point
11/04 13:22, 1F

11/04 13:23, , 2F
嚴格的來說還是有空間, 指標指向的entry point就是那段
11/04 13:23, 2F

11/04 13:23, , 3F
函式佔用空間的起始點不是嗎@_@"
11/04 13:23, 3F

11/04 13:24, , 4F
到底想問什麼
11/04 13:24, 4F

11/04 13:24, , 5F
像這個case似乎也是nested func, 之前的文也有人推文討
11/04 13:24, 5F

11/04 13:25, , 6F
論認為nested func會省記憶體, 不過小弟不認為會就是因
11/04 13:25, 6F

11/04 13:25, , 7F
為func也是佔用mem的, nested的好處總覺得只有scope.
11/04 13:25, 7F

11/04 13:26, , 8F
另外就算有遞迴, 會一直佔用新空間的應該也是stack, 或
11/04 13:26, 8F

11/04 13:26, , 9F
者func內自己有其他mem的耗用, 印象中func body除非被
11/04 13:26, 9F

11/04 13:27, , 10F
展開, 不然mem裡只需要一份@_@"
11/04 13:27, 10F

11/04 13:27, , 11F
哪天有空再拿VC disasm一個nested func的例子好了Orz
11/04 13:27, 11F

11/04 13:40, , 12F
謝謝,大概知道了..因為我把函式想成像一個物件~
11/04 13:40, 12F

11/04 13:41, , 13F
而其實函式只是一個敘述的集合..沒有佔實體空間
11/04 13:41, 13F

11/04 13:42, , 14F
真的會佔使用到空間的是內部的指令
11/04 13:42, 14F

11/04 13:46, , 15F
請問V大 nested function是不是VC不能用? 之前想試試看
11/04 13:46, 15F

11/04 13:46, , 16F
都說"區域函式定義不合法"??是我搞錯了嗎
11/04 13:46, 16F

11/04 13:59, , 17F
C++嗎??剛用DevC++也不行, 寫C的話就可以了@_@"
11/04 13:59, 17F

11/04 14:01, , 18F
恩~之前是印象中看過奇怪為啥要這樣在local寫function
11/04 14:01, 18F

11/04 14:01, , 19F
自己想試試看卻都一直出錯 以為我記錯了....
11/04 14:01, 19F

11/04 14:02, , 20F
之前是想測試為啥說function預設都是extern..但只限定global
11/04 14:02, 20F

11/04 14:02, , 21F
卻找不到反例 測不出來@@
11/04 14:02, 21F
文章代碼(AID): #1AyGyFL9 (C_and_CPP)
文章代碼(AID): #1AyGyFL9 (C_and_CPP)