看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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