C 靜態庫與動態庫 C 物件模型

2021-06-22 20:30:38 字數 771 閱讀 5215

c++靜態庫與動態庫:

c++物件模型:

stl運用的c++技術

1.程式使用記憶體區

乙個程式占用的記憶體區一般分為5種:

(1)全域性、靜態資料區:儲存全域性變數及靜態變數(包括全域性靜態變數和區域性靜態變數)

(2)常量資料區:儲存程式中的常量字串等。

(3)**區:儲存程式的**。

(4)棧:儲存自動變數或者區域性變數,以及傳遞的函式引數等。

(5)堆:儲存動態產生的資料。

在處理記憶體時,系統會自動將記憶體對齊,這樣雖然會浪費一些記憶體,但由於cpu在對齊方式下執行比較快,所以

一般都是對程式效能還是有好處的。

c++中乙個類中無非有四種成員:靜態資料成員和非靜態資料成員,靜態函式和非靜態函式。

一.非靜態資料成員被放在每乙個物件體內作為物件專有的資料成員。

二.靜態資料成員被提取出來放在程式的靜態資料區內,為該類所有物件共享,因此只存在乙份。

三.靜態和非靜態成員函式最終都被提取出來放在程式的**段中並為該類所有物件共享,因此每乙個成員函式也只能存在乙份**實體。在c++中類的成員函式都是儲存在靜態儲存區中的,那靜態函式也是儲存在靜態儲存區中的,他們都是在類中儲存同乙個憊份。

因此,構成物件本身的只有資料,任何成員函式都不隸屬於任何乙個物件,非靜態成員函式與物件的關係就是繫結,繫結的中介就是this指標。成員函式為該類所有物件共享,不僅是處於簡化語言實現、節省儲存的目的,而且是為了使同類物件有一致的行為。同類物件的行為雖然一致,但是操作不同的資料成員。

C 靜態庫與動態庫

感覺比較形象,就摘過來了.這次分享的 宗旨是 讓大家學會建立與使用靜態庫 動態庫,知道靜態庫與動態庫的區別,知道使用的時候如何選擇。這裡不深入介紹靜態庫 動態庫的底層格式,記憶體布局等,有興趣的同學,推薦一本書 程式設計師的自我修養 鏈結 裝載與庫 庫是寫好的現有的,成熟的,可以復用的 現實中每個程...

C 靜態庫與動態庫

庫是寫好的現有的,成熟的,可以復用的 現實中每個程式都要依賴很多基礎的底層庫,不可能每個人的 都從零開始,因此庫的存在意義非同尋常。本質上來說庫是一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。庫有兩種 靜態庫 a lib 和動態庫 so dll 所謂靜態 動態是指鏈結。回顧一下,將乙個程...

c 靜態庫與動態庫

庫分為靜態庫,動態庫,在不同系統下字尾不同。2.1.1 在鏈結和執行階段都涉及庫的呼叫 訪問 h檔案 標頭檔案 是庫的介面。h檔案提供給庫的使用者,使用者通過.h來呼叫庫中的api。2.1.2 庫中包含的是函式的實現 一堆函式的實現 這些函式在編寫的時候同樣要包含1中的標頭檔案,然後生成庫。2.1....