第五章 對鏈結的思考

2021-08-30 15:02:40 字數 703 閱讀 2615

程式在執行時尋找它們,而不是把這些函式的二進位製碼作為自身可執行檔案的一部分.

2,動態鏈結提高效能:

(1)儘管單個可執行檔案的啟動速度稍受影響,但是動態鏈結可執行檔案比功能相同的靜態檔案小,可以節省磁碟空間和虛擬記憶體.

(2)所有動態鏈結到同乙個函式庫的可執行檔案在執行時共享這個函式庫的同乙份拷貝.

如果是靜態鏈結,每個檔案都擁有函式庫的乙份物理拷貝,顯然極為浪費.

(3)動態鏈結庫的版本公升級更容易.

注:動態鏈結是一種"just-in-time"鏈結,意味著程式執行時必須能夠找到它們所需要的函式庫.

3,動態庫檔案的副檔名".so",靜態庫檔案的副檔名".a".

4,觀察標頭檔案,確認所使用的函式庫.

每個標頭檔案可能代表乙個必須鏈結的庫.

乙個函式庫包括多個函式,這些函式的宣告可能散布於多個標頭檔案中.

5,靜態鏈結和動態鏈結在鏈結語義上存在重大區別:

(2)對於靜態鏈結庫,只是載入載入器當時所知道的未定義符號.

因此:命令列中各個靜態鏈結庫出現的順序是非常重要的.

建議:始終將-l 函式庫 放在編譯命令列的最右邊.

6,警惕:interpositioning

通過編寫與庫函式同名的函式來取代該函式庫的行為.

注:這樣做後,不僅你自己對庫函式的呼叫將被自己版本的函式呼叫所取代,而且所有呼叫該庫函式的系統呼叫也將呼叫你自己的那個函式版本.

第五章思考題

目的 要求開發人員準確地理解使用者需要什麼,進行細緻地調查分析,將使用者的需求陳述轉化為完整的需求定義,再由需求定義轉化為相應的軟體需求規格說明。作用 需求分析雖處於軟體開發的初期階段,但它對於整個軟體開發過程以及產品質量至關重要。只有做好需求分析才能做出符合需要的軟體功能。業務需求 busines...

CLRS第五章思考題

a 設在第 j 次增加時,計數器為 i,表示 ni 若計數器增加,則值增加 ni 1 n i 概率為 1 ni 1 ni 因此有 e xj 0 pr 1 pr 0 1 1ni 1 n i 1 n i 1 ni 1ni 1 ni 1 執行一次的期望為 1,執行 n 次的期望為 n。b 一次增加的方差 ...

第五章 列表與超連結

1 無序列表 ul 各個列表項之間是並列關係 標記巢狀在標記中,每對至少包含一對。中只能巢狀,直接在標記中輸入文字的做法是不被允許的。2 有序列表 ol 即為有排列順序的列表。每對 也至少包含一對。除type屬性之外,還可以為定義start屬性,為定義value屬性。type屬性的屬性值 1 專案符...