作者yauhh (喲)
看板C_and_CPP
標題Re: [問題] function中為什麼不能再宣告function
時間Fri Dec 25 21:38:03 2009
※ 引述《WhisperGhost (oops)》之銘言:
: 有人問到,為什麼不能把function宣告在main中,是不是法則上本身就不行
: 比如說variable的scope都是有規定他的性質。
:
: 因為有人問了突然不知該怎麼解釋,我從沒想過這種問題 XD
這是個程式語言方面的問題,"為什麼C++ function中不能宣告function".
其實問題字面上問錯了,C++ function中可以宣告function,
但是,function中不可以定義function.
答案可能是本來就這樣,他當初設計時沒有想到.
答案也可能是,相對於巢狀function的定義,就要有巢狀function的系統stack的
處理,那有點複雜,而且做起來可能長得跟處理用class宣告的變數一樣,二種處理會混淆.
另一點是,在系統stack要取回某local function的位址,就要在那個local funtion
scope中找到那個local function,不好做.
最基本的答案是,C++規格沒規定這個部份,設計者沒這麼想. 他只做了巢狀的
資料結構和巢狀的class,已經夠用了.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.228.249
推 horngsh:此文中肯! 12/25 22:00
※ 編輯: yauhh 來自: 59.112.228.249 (12/25 23:10)
推 sjgau:Pascal 電腦語言可以。C/C++, Fortran, BASIC 不行 12/26 07:13
→ MOONRAKER:BASIC也拿來討論 實在是幽默的過火了 -_- 12/26 16:47
→ MOONRAKER:BASIC當初根本不是結構化語言 跟其他結構化語言怎麼能在 12/26 16:49
→ MOONRAKER:同一個水準比 後來那些結構化的BASIC dialects只不過是 12/26 16:49
→ MOONRAKER:把BASIC變成PASCAL或C Language而已 12/26 16:50