等你完全暸解程式中的函式以後, 你會知道程式中的函式除了格式和數學中的函式很像之外, 不見得要給它某些數值去對應到另一些數值, 也不見得有一對一或是多對一的特性, 甚至有一對多的特性, 因此還是別比較了, 記得它是一堆 CPU 動作的組合就是了。
例如:
注意:
在上面解釋函式呼叫時, 將一個函式比擬為一個專做某些特殊事情的助手, 這個比喻會有一個大問題: 在現實生活中, 班代可以請總務全權獨立去負責所有班費相關的事務, 同時班代可以放心地去處理其它的事務; 但是在程式中呼叫一個函式時, 呼叫方的程式會暫停在那裡等待被呼叫的函式執行完所有的工作後才再繼續向下做下去, 並沒有辦法兵分二路各自執行。 這樣子的結果有一個很大的好處: 就是程式中有那麼多的函式會被執行, 但是主函式 main() 一定可以掌握究竟哪些函式已經完成了。
另一種解釋函式呼叫的方法則是由 CPU 的角度來看: CPU 在任何一時間只能執行一個指令, 程式一開始的時候 CPU 由 main() 函式的第一列開始執行, 執行到某一個函式呼叫的時候 (例如:printf()), CPU 立刻由 main() 函式轉而執行 printf() 函式內的第一列, 跟著函式內的邏輯一列一列地執行下去, 直到函式結束或是 return 敘述, CPU 再回到剛才呼叫 printf() 的地方繼續執行下去, 如此依照 main() 函式內邏輯執行下去, 一直到函式結束或是 return 敘述或是 exit() 函式呼叫後程式才結束。 (上面講的 CPU 執行敘述的順序其實也就是一般所謂的控制流程。)
回
輔助教材
首頁,
回
計算機程式設計
首頁
製作日期: 97/09/13
by 丁培毅 (Pei-yih Ting)
E-mail: pyting@ntu.edu.tw