4.2 例程的初始化與結束化
例程沒有專門用來初始化和結束化的內部函式或過程。
例程初始化時進行的操作包括:
- 生成傳值引數的備份,並替換原引數的傳入地址;
- 在棧上為區域性變數分配空間,並初始化具有引用計數特徵的變數;
- 為陣列和記錄呼叫初始化過程,初始化其中具有引用計數特徵的域(記錄)或元素(陣列)。
例程初始化過程中不會有堆操作。例程的結束化時進行的操作包括:
- 清除傳值引數的備份;
- 按照呼叫約定傳出Result;
- 清除區域性變數在棧上分配的空間,併為具有引用計數特徵的變數呼叫減少引用計數的內部例程。如果引用計數減至1以下,則釋放變數在堆上的記憶體佔用;
- 為陣列和記錄呼叫結束化過程,以使其中的引用計數特徵的域(記錄)或元素(陣列),得到與區域性變數相類同的結束化操作。
例程的初始化和結束化過程的具體操作,在如下章節中有更細節的描述:
第2章第6節:引用一計數一寫複製與型別資訊;第3章第4節:例程入口引數及呼叫約定;第3章第6節:完全彙編例程與內嵌彙編例程;第4章第1節:變數的初始化與結束化。
相關推薦
4.2 例程的初始化與結束化
例程沒有專門用來初始化和結束化的內部函式或過程。 例程初始化時進行的操作包括: 生成傳值引數的備份,並替換原引數的傳入地址; 在棧上為區域性變數分配空間,並初始化具有引用計數特徵的變數; 為陣列和記錄呼叫初始化過程,初始化其中具有引用計數特徵的域(記錄)或元素(陣列)。 例程初
4.3 單元初始化與結束化
4.3.1單元初始化與結束化的內部例程 Delphi會初始化每一個單元,單元結束化則是初始化的逆過程。它們對應於System.,pas中的兩個內部例程: procedure InitUnits; procedure FinalizeUnits; 編譯器會採用深度優先遍歷演算法掃描專案的
4.4 模組初始化與結束化
4.4.1模組入口程式碼 編譯器為每個Delphi模組(可執行程式、動態連結庫或包)生成模組入口程式碼。同類型的程式或模組,其入口程式碼是相同的。 編譯器為可執行程式.EXE)生成的入口程式碼為: Project1.dpr.9:begin 0044CA9855push ebp 0044C
4.4 模塊初始化與結束化
svd poi all dll pkg sin 例如 esp span 4.4.1模塊入口代碼 編譯器為每個Delphi模塊(可執行程序、動態鏈接庫或包)生成模塊入口代碼。同類型的程序或模塊,其入口代碼是相同的。 編譯器為可執行程序.EXE)生成的入口代碼為: Pro
4.4.2 構建器初始化
以及 過程 繼承 默認 模塊 對象 永遠 發生 tin 字段先初始化,之後才是構造方法; 字段又有static字段先初始化,之後非static初始化(int i;這個就初始化默認值) class Bowl { Bowl(int marker) { System.o
第4章 初始化和結束化過程
每一個程式碼塊都具有一個BEGIN和一個END,儘管在BASM中用ASM關鍵字代替了BEGIN,但它仍然起著相同的作用。 有些情況下,BEGIN和END只決定一個語法結構的開始和結束,例如記錄和物件型別定義中使用的BEGIN和END。但更多的時候(例如例程定義中),BEGIN與END代表初始化與結束化過
java 初始化與例項化的區別
class A{ public A(){ ……//初始化 } public static void main(String&nb
深入理解Java物件的建立過程:類的初始化與例項化
摘要: 在Java中,一個物件在可以被使用之前必須要被正確地初始化,這一點是Java規範規定的。在例項化一個物件時,JVM首先會檢查相關型別是否已經載入並初始化,如果沒有,則JVM立即進行載入並呼叫類構造器完成類的初始化。在類初始化過程中或初始化完畢後,根據具體情況才會
3.4.2 單幀滑動視窗與停止等待協議
在停止等待協議中,源站傳送單個幀後必須等待確認,在目的站的回答到達源站之前,源站不能傳送其他的資料幀。從滑動視窗機制的角度看,停止等待協議相當於傳送視窗和接受視窗的接受視窗大小均為1的滑動視窗協議。
[Python資料分析] 2-單因子探索分析與視覺化
I.理論部分 1)概念相關: 集中趨勢:均值,中位數,眾數,分位數 離中趨勢:標準差,方差 資料分佈:偏度係數,峰度係數,正態分佈,三大分佈 抽樣理論:抽樣誤差(確定樣本量)、抽樣精度 2)資料分類 定類(類別):根據事物離散,無差別屬性進行的分類。性別,民族 定序(
4-2 session的基本原理與create命令的使用
session的基本原理 客戶端與伺服器之間的連線存在會話,這個會話就是session 每個會話都會可以設定一個超時時間,如果時間到了,該session就會清除 心跳結束,session則過期 Session過期,則臨時節點znode會被拋棄 心跳機制:客戶端向伺服器端的ping包請求
魚刺類_多線程應用v5.4.3 例程+模塊
.com 函數 5.4 con com 模塊 發的 有用 多線程 *修正 修正_線程池Ex/線程池Ex一處很難被觸發的BUG*修改 去除所有用到取啟動時間的函數/方法 (修正在系統開機超過29天的機器上可能會出現問題)*修正 類回調_生成 部分系統配置兼容問題 https
4.2 進程
mina 屬性 輸入參數 res spa gif release 緩沖區 關閉 目錄 4.2.1 相關概念 4.2.1.1 進程 4.2.1.2 同步/異步 4.2.1.3 阻塞/非阻塞 4.2.1.4 並發/並行 4.2.1.5 進程狀態與調度 4
[App Store Connect幫助]八、維護您的 App(4.2)查看評分與評論
view 所有 repo 問題 一個 arr 編輯 alert img 您可以查看 App 的總評分或單個顧客評論。如有必要,您可以針對某條評論報告問題。 【註】顧客可以為您的 iOS 和 macOS App 評分並撰寫評論,但只能為 Apple TVOS App 評
深入學習Java物件建立的過程:類的初始化與例項化
在Java中,一個物件在可以被使用之前必須要被正確地初始化,這一點是Java規範規定的。在例項化一個物件時,JVM首先會檢查相關型別是否已經載入並初始化,如果沒有,則JVM立即進行載入並呼叫類構造器完成類的初始化。在類初始化過程中或初始化完畢後,根據具體情況才會去對類進行例項化。本文試圖對JVM執行類初始
C# XML反序列化與序列化舉例:XmlSerializer(轉)
1 using System; 2 using System.IO; 3 using System.Xml.Serialization; 4 5 namespace XStream 6 { 7 /// <summary> 8
微服務化之無狀態化與容器化
此文已由作者劉超授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 一、為什麼要做無狀態化和容器化 很多應用拆分成微服務,是為了承載高併發,往往一個程序扛不住這麼大的量,因而需要拆分成多組程序,每組程序承載特定的工作,根據併發的壓力用多個副本公共承擔流量。 將一個程序變成多組程序,每
全面升級Android面試之元件化與外掛化
什麼是元件化和外掛化? 元件化開發就是將一個app分成多個模組,每個模組都是一個元件(Module),開發的過程中我們可以讓這些元件相互依賴或者單獨除錯部分元件等,但是最終釋出的時候是將這些元件合併統一成一個apk,這就是元件化開發。 外掛化開發和元件化
Android模組化與元件化--多模組區分編譯
模組化與元件化–多模組區分編譯 有時我們一個專案中存在多個產品形態,且不同產品需要不同的編譯環境,這是模組化元件化的基礎。最普通的情況便是在主模組裡面加入渠道統計,但此時如果我們有多個Library,多種產品形態的主模組需要編譯多種產品形態的Library
金貓kinmall解讀區塊鏈去中心化與中心化遇到問題
隨著加密貨幣的價格持續下跌,2018年全球區塊鏈社群以慘淡結果收場。對某些人來說,這是一個進行反思的機會,一個告別炒作的機會,對我們過去幾年所取得的成就進行真正的評估。但這可能只是事物的樂觀一面:或許,現在是時候對分散式賬本技術未來的發展方向,以及我們在這上面所花費的時間是否有價值進行回顧和評估了。 問