1. 程式人生 > >函式呼叫的幾點說明:

函式呼叫的幾點說明:

當在一個函式的執行期間呼叫另外一個函式時,在執行被調函式之前,系統需要完成三件事:

1. 將所有的實際引數,返回地址等資訊傳遞給被調函式儲存

2. 為被調函式的區域性變數(也包括形參)分配儲存空間

3. 將控制轉移到被調函式入口

從被調函式返回主調函式之前,系統也要完成三件事:

1. 儲存被調函式的返回結果

2. 釋放被調函式所佔的儲存空間

3. 依照被調函式儲存的返回地址將控制權轉移到呼叫函式

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

當有多個函式相互呼叫時,按照“先呼叫後返回”的原則,上述函式之間

資訊傳遞和控制轉移必須藉助“棧”來實現,即:系統將整個程式執行時所需要的

資料空間安排在一個棧中,每當呼叫一個函式時,就在棧頂分配一個儲存區,

進行壓棧操作,每當一個函式退出時,就釋放它的儲存區,就行出棧操作,

當前執行的函式永遠都在棧頂位置。

遞迴:

A函式呼叫A函式和A函式呼叫B函式在計算機看來是沒有任何區別的,

只不過用我們日常的思維方式理解比較怪異僅此而已!