Re: [問題] function中為什麼不能再宣告function

看板C_and_CPP (C/C++)作者 (喲)時間16年前 (2009/12/25 21:38), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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

12/25 22:00, , 1F
此文中肯!
12/25 22:00, 1F
※ 編輯: yauhh 來自: 59.112.228.249 (12/25 23:10)

12/26 07:13, , 2F
Pascal 電腦語言可以。C/C++, Fortran, BASIC 不行
12/26 07:13, 2F

12/26 16:47, , 3F
BASIC也拿來討論 實在是幽默的過火了 -_-
12/26 16:47, 3F

12/26 16:49, , 4F
BASIC當初根本不是結構化語言 跟其他結構化語言怎麼能在
12/26 16:49, 4F

12/26 16:49, , 5F
同一個水準比 後來那些結構化的BASIC dialects只不過是
12/26 16:49, 5F

12/26 16:50, , 6F
把BASIC變成PASCAL或C Language而已
12/26 16:50, 6F
文章代碼(AID): #1BDC0-9Z (C_and_CPP)
文章代碼(AID): #1BDC0-9Z (C_and_CPP)