當在乙個函式的執行期間呼叫另外乙個函式時,在執行被調函式之前,系統需要完成三件事:
1. 將所有的實際引數,返回位址等資訊傳遞給被調函式儲存
2. 為被調函式的區域性變數(也包括形參)分配儲存空間
3. 將控制轉移到被調函式入口
從被調函式返回主調函式之前,系統也要完成三件事:
1. 儲存被調函式的返回結果
2. 釋放被調函式所佔的儲存空間
3. 依照被調函式儲存的返回位址將控制權轉移到呼叫函式
當有多個函式相互呼叫時,按照「先呼叫後返回」的原則,上述函式之間
資訊傳遞和控制轉移必須借助「棧」來實現,即:系統將整個程式執行時所需要的
資料空間安排在乙個棧中,每當呼叫乙個函式時,就在棧頂分配乙個儲存區,
進行壓棧操作,每當乙個函式退出時,就釋放它的儲存區,就行出棧操作,
當前執行的函式永遠都在棧頂位置。
遞迴:
a函式呼叫a函式和a函式呼叫b函式在計算機看來是沒有任何區別的,
只不過用我們日常的思維方式理解比較怪異僅此而已!
關於友元函式的幾點說明
對於友元函式的幾點說明 1 必須在類的說明中說明友元函式,說明時以關鍵字friend開頭,後跟友元函式的函式原型,友元函式的說明可以在類的任何地方,包括private和public部分 2 注意友元函式不是類的成員函式,所以友元函式的實現和普通函式一樣,在實現時不用 指示屬於哪個類,只有成員函式才使...
多型的幾點說明
父類的引用指向子類的例項 多型實現的3個必要條件 1.繼承關係 2.子類重寫了父親方法 3.父類的引用指向子類的例項 1.良好的擴充套件性 2.方便我們的 維護 3.靈活性更好 1.父類型別作為方法的形參 2.父類型別作為方法的返回值型別 3.父類的引用指向子類的例項 1.需要根據你們的業務需求來決...
關於C 靜態建構函式的幾點說明
靜態建構函式是c 的乙個新特性,其實好像很少用到。不過當我們想初始化一些靜態變數的時候就需要用到它了。這個建構函式是屬於類的,而不是屬於 例項的,就是說這個建構函式只會被執行一次。也就是在建立第乙個例項或引用任何靜態成員之前,由.net自動呼叫。class class 在使用靜態建構函式的時候應該注...