国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

老生常談C語言靜態函數庫的制作和使用

2020-01-26 14:26:47
字體:
來源:轉載
供稿:網友

C語言的函數庫是多組經過驗證的常用函數的集合,編寫C語言程序時使用庫函數,既可以提高程序運行效率,又可以提高編程質量,使用方法如#include 和#include。

根據使用庫函數時,函數庫加載時機的差異,將函數庫分為靜態函數庫和動態函數庫,具體差異是:C語言程序如果使用靜態函數庫的函數,那么整個函數庫的代碼都會和C語言程序一起編譯成可執行代碼,程序的體積會膨脹;如果使用動態函數庫的函數,則C語言程序只會和函數庫文件名以及函數名一起編譯成可執行代碼(不編譯函數代碼),運行時去查找函數庫文件和函數體,程序的體積基本不變。

簡單概括就是,靜態函數庫是“以空間換時間”,增加程序體積,減少運行時間,如果靜態函數庫發生改變,則整個程序必須重新編譯,因為函數庫被整合到了最終可執行代碼中;動態函數庫則是“以時間換空間”,增加運行時間,減少程序體積,如果動態函數庫發生改變,程序無須重新編譯,因為函數庫沒有整合到最終可執行代碼中。

Linux中靜態函數庫表示為”libxxx.a”,windows中后綴名為”.lib”;Linux中動態函數庫表示為”libxxx.so”,windows中后綴名為”.dll”。函數庫中存放內容包括:(1)函數名稱,(2)函數目標代碼(二進制),(3)重定位信息(鏈接需要)等。

1 靜態函數庫的制作和使用

靜態函數庫的制作步驟可以用下圖來描述,具體包括

(1)編寫函數的.c文件(例如add.c、sub.c、mul.c和div.c)

(2)編寫Makefile,然后make,實現函數的編譯和歸檔入庫

函數的編譯:使用gcc

主站蜘蛛池模板: 邢台县| 桐梓县| 安阳市| 宿松县| 黄石市| 五莲县| 黄陵县| 松原市| 江津市| 乳源| 福海县| 东港市| 同心县| 景泰县| 比如县| 张家界市| 海口市| 江孜县| 开化县| 赤水市| 略阳县| 舒城县| 乌鲁木齐县| 南城县| 合阳县| 聂荣县| 鲁山县| 台州市| 上林县| 汨罗市| 英吉沙县| 凉山| 富平县| 台州市| 临桂县| 福安市| 永胜县| 碌曲县| 大同县| 德兴市| 张家界市|