靜態庫推薦的用例場景

2021-10-24 02:14:15 字數 714 閱讀 1612

靜態庫是一種最基礎的二進位制**共享方式,並在動態庫出現以前已經被使用了很長一段。在此期間,動態庫這種更為複雜的模式逐漸成為了共享二進位制**的主流。雖說如此,我們還是會在少數應用場景中使用靜態庫。

在實現各種核心演算法時使用靜態庫還是非常合適的,無論是對於一些像查詢和排序這樣的基本演算法,還是一些非常複雜的科學或數學領域的演算法。下面列出的專案能夠更好地說明我們為什麼要用靜態庫的方式來提供**實現:

雖然我們降低了構建的複雜性,但使用靜態庫就意味著對**進行更加嚴格的控制。程式的模組化程度降低了,因此每當出現新版本的**時,都需要對使用了這些靜態庫的應用程式進行重新編譯。

在多**領域,訊號處理(分析、編譯碼和dsp)功能一般都是以靜態庫的方式提供的。而用於整合的多**框架(directx、gstreamer和openmax)卻以動態庫的方式提供,這些框架會把與演算法相關的靜態庫整合進來。在這種設計模式中,動態庫部分解決框架的通訊問題,靜態庫解決訊號處理的複雜性。

當你有一部分提供特定功能的**時,你必須決定是否將其封裝成靜態庫的形式。在本節提到的一些典型情況中,使用靜態庫是一種禁忌:

如果你所實現的功能需要存在乙個類的單個例項(單例模式),由於下面良好的動態庫設計實踐,我們最終建議讀者將**封裝成動態庫而不是靜態庫。

摘自《高階c/c++編譯技術》

靜態成員函式的用例

靜態成員函式的例子 某商店經銷一種貨物。貨物購進和賣出時以箱為單位,各箱的重量不一樣,因此,商店需要記錄目前庫存的總重量。現在用c 模擬商店貨物購進和賣出的情況。include iostream using namespace std class goods goods int weight sta...

用例實現 用例場景和領域模型

首先是業務用例實現檢視。並非所有的業務用例都一定要最終在系統中實現,因此,這個檢視的含義是表達由需求範圍到系統範圍的對映關係。這個檢視沒什麼技巧,也可以省略,不過筆者建議不要省略。需求應當保持過程的連續和可追溯性,這是軟體過程可控的重要保證。業務用例實現檢視 看不清楚?這裡檢視原圖 大圖 應當在業務...

ros 用靜態庫

add executable test pkg src test pkg.cpp target link libraries test pkg multiply home xp ads master adslib linux.a pthread 這裡我用的是adslib linux.a,為了使用多執...