庫函數(Library function)是把函數放到庫里,供別人使用的一種方式。.方法是把一些常用到的函數編完放到一個文件里,供不同的人進行調用。調用的時候把它所在的文件名用#include加到里面就可以了。一般是放到lib文件里的。
成都創新互聯是專業的淶源網站建設公司,淶源接單;提供成都網站制作、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行淶源網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
一般是指編譯器提供的可在c源程序中調用的函數。可分為兩類,一類是c語言標準規定的庫函數,一類是編譯器特定的庫函數。
由于版權原因,庫函數的源代碼一般是不可見的,但在頭文件中你可以看到它對外的接口
庫函數簡介。
C語言的語句十分簡單,如果要使用C語言的語句直接計算sin或cos函數,就需要編寫頗為復雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
C語言的庫函數并不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要編制并提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。事實上,在編寫C語言程序時,應當盡可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。
這里調用的是靜態庫。
函數庫:函數庫是由系統建立的具有一定功能的函數的集合。庫中存放函數的名稱和對應的目標代碼,以及連接過程中所需的重定位信息。用戶也可以根據自己的需要建立自己的用戶函數庫。
庫函數:存放在函數庫中的函數。庫函數具有明確的功能、入口調用參數和返回值。
連接程序:將編譯程序生成的目標文件連接在一起生成一個可執行文件。
頭文件:有時也稱為包含文件。C語言庫函數與用戶程序之間進行信息通信時要使用的數據和變量,在使用某一庫函數時,都要在程序中嵌入(用#include)該函數對應的頭文件。
由于C語言編譯系統應提供的函數庫尚無國際標準。不同版本的C語言具有不同的庫函數,用戶使用時應查閱有關版本的C的庫函數參考手冊。我們以Turbo C為例簡介一下C的庫函數,并附錄中給出了Turbo C的部分常用庫函數。
iv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;
常見的函數有malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等。具體內容可以在編譯器的包含目錄stdlib.h頭文件中打開查看。
為了方便用戶編寫程序,C語言為用戶開發了大量的庫函數,定義在。H文件,用戶可以調用這些函數來實現強大的功能。因此,對于用戶來說,這些函數的使用是提高編程水平的關鍵。
擴展資料:
以下內容適用于頭文件
1.對于具有外部存儲類型的標識符,可以在任何其他源程序文件中聲明后引用它們,這樣用戶就可以完全將具有外部存儲類型的標識符的一些聲明放在頭文件中。
2.具體來說,頭文件可以包括用戶構造的數據類型(例如枚舉類型)、外部變量、外部函數、常量和具有一定通用性或公共量的內聯函數。一般的變量和函數定義不應該放在頭文件中。
其他:
雙假設(雙x,雙y);//給定一個直角三角形的兩條邊的長度,求斜邊的長度。
雙ldexp(雙x,int指數);//計算x*(2的指數次方)。
雙poly(Doublex,intdegree,Doublecoeffs[])//計算多項式。
Ntmatherr(structexception*e)//數學錯誤計算處理程序。
下面給出Turbo C的全部".h"文件。Turbo C頭文件:
頭文件
說明
alloc.h 說明內存管理函數(分配、釋放等)。
assert.h 定義 assert調試宏。
bios.h 說明調用IBM—PC ROM BIOS子程序的各個函數。
conio.h 說明調用DOS控制臺I/O子程序的各個函數。
ctype.h 包含有關字符分類及轉換的名類信息(如 isalpha和toascii等)。
dir.h 包含有關目錄和路徑的結構、宏定義和函數。
dos.h 定義和說明MSDOS和8086調用的一些常量和函數。
error.h 定義錯誤代碼的助記符。
fcntl.h 定義在與open庫子程序連接時的符號常量。
float.h 包含有關浮點運算的一些參數和函數。
graphics.h 說明有關圖形功能的各個函數,圖形錯誤代碼的常量定義,正對不同驅動程序的各種顏色值,及函數用到的一些特殊結構。
io.h 包含低級I/O子程序的結構和說明。
limit.h 包含各環境參數、編譯時間限制、數的范圍等信息。
math.h 說明數學運算函數,還定了 HUGE VAL 宏, 說明了matherr和matherr子程序用到的特殊結構。
mem.h 說明一些內存操作函數(其中大多數也在STRING.H中說明)。
process.h 說明進程管理的各個函數,spawn…和EXEC …函數的結構說明。
setjmp.h 定義longjmp和setjmp函數用到的jmp buf類型,說明這兩個函數。
share.h 定義文件共享函數的參數。
signal.h 定義SIG[ZZ(Z] [ZZ)]IGN和SIG[ZZ(Z] [ZZ)]DFL常量,說明rajse和signal兩個函數。
stddef.h 定義讀函數參數表的宏。(如vprintf,vscarf函數)。
stddef.h 定義一些公共數據類型和宏。
stdio.h 定義Kernighan和Ritchie在Unix System V 中定義的標準和擴展的類型和宏。還定義標準I/O 預定義流:stdin,stdout和stderr,說明 I/O流子程序。
stdlib.h 說明一些常用的子程序:轉換子程序、搜索/ 排序子程序等。
string.h 說明一些串操作和內存操作函數。
sys\stat.h 定義在打開和創建文件時用到的一些符號常量。
sys\types.h 說明ftime函數和timeb結構。
sys\time.h 定義時間的類型time[ZZ(Z] [ZZ)]t。
time.h 定義時間轉換子程序asctime、localtime和gmtime的結構,ctime、 difftime、 gmtime、 localtime和stime用到的類型,并提供這些函數的原型。
value.h 定義一些重要常量,包括依賴于機器硬件的和為與Unix System V相兼容而說明的一些常量,包括浮點和雙精度值的范圍。C系統提供了豐富的系統文件,稱為庫文件。C的庫文件分為兩類,一類是擴展名為".h"的文件,稱為頭文件,在前面的包含命令中我們已多次使用過。在".h"文件中包含了常量定義、 類型定義、宏定義、函數原型以及各種編譯選擇設置等信息。另一類是函數庫,包括了各種函數的目標代碼,供用戶在程序中調用。通常在程序中調用一個庫函數時,要在調用之前包含該函數原型所在的".h" 文件。
字符處理函數
本類別函數用于對單個字符進行處理,包括字符的類別測試和字符的大小寫轉換
頭文件
ctype.h
函數列表
函數類別
函數用途
詳細說明
字符測試
是否字母和數字
isalnum
是否字母
isalpha
是否控制字符
iscntrl
是否數字
isdigit
是否可顯示字符(除空格外)
isgraph
是否可顯示字符(包括空格)
isprint
是否既不是空格,又不是字母和數字的可顯示字符
ispunct
是否空格
isspace
是否大寫字母
isupper
是否16進制數字(0-9,A-F)字符
isxdigit
字符大小寫轉換函數
轉換為大寫字母
toupper
轉換為小寫字母
tolower
地區化
本類別的函數用于處理不同國家的語言差異。
頭文件
local.h
函數列表
函數類別
函數用途
詳細說明
地區控制
地區設置
setlocale
數字格式約定查詢
國家的貨幣、日期、時間等的格式轉換
localeconv
數學函數
本分類給出了各種數學計算函數,必須提醒的是ANSI
C標準中的數據格式并不符合IEEE754標準,一些C語言編譯器卻遵循IEEE754(例如frinklin
C51)
頭文件
math.h
函數列表
函數類別
函數用途
詳細說明
錯誤條件處理
定義域錯誤(函數的輸入參數值不在規定的范圍內)
值域錯誤(函數的返回值不在規定的范圍內)
三角函數
反余弦
acos
反正弦
asin
反正切
atan
反正切2
atan2
余弦
cos
正弦
sin
正切
tan
雙曲函數
雙曲余弦
cosh
雙曲正弦
sinh
雙曲正切
tanh
指數和對數
指數函數
exp
指數分解函數
frexp
乘積指數函數
fdexp
自然對數
log
以10為底的對數
log10
浮點數分解函數
modf
冪函數
冪函數
pow
平方根函數
sqrt
整數截斷,絕對值和求余數函數
求下限接近整數
ceil
絕對值
fabs
求上限接近整數
floor
求余數
fmod
本分類函數用于實現在不同底函數之間直接跳轉代碼。
頭文件
setjmp.h
io.h
函數列表
函數類別
函數用途
詳細說明
保存調用環境
setjmp
恢復調用環境
longjmp
信號處理
該分類函數用于處理那些在程序執行過程中發生例外的情況。
頭文件
signal.h
函數列表
函數類別
函數用途
詳細說明
指定信號處理函數
signal
發送信號
raise
可變參數處理
本類函數用于實現諸如printf,scanf等參數數量可變底函數。
頭文件
stdarg.h
函數列表
函數類別
函數用途
詳細說明
可變參數訪問宏
可變參數開始宏
va_start
可變參數結束宏
va_end
可變參數訪問宏
訪問下一個可變參數宏
va_arg
輸入輸出函數
該分類用于處理包括文件、控制臺等各種輸入輸出設備,各種函數以“流”的方式實現
頭文件
stdio.h
函數列表
函數類別
函數用途
詳細說明
文件操作
刪除文件
remove
修改文件名稱
rename
生成臨時文件名稱
tmpfile
得到臨時文件路徑
tmpnam
文件訪問
關閉文件
fclose
刷新緩沖區
fflush
打開文件
fopen
將已存在的流指針和新文件連接
freopen
設置磁盤緩沖區
setbuf
設置磁盤緩沖區
setvbuf
格式化輸入與輸出函數
格式輸出
fprintf
格式輸入
fscanf
格式輸出(控制臺)
printf
格式輸入(控制臺)
scanf
格式輸出到緩沖區
sprintf
從緩沖區中按格式輸入
sscanf
格式化輸出
vfprintf
格式化輸出
vprintf
格式化輸出
vsprintf
字符輸入輸出函數
輸入一個字符
fgetc
字符串輸入
fgets
字符輸出
fputc
字符串輸出
fputs
字符輸入(控制臺)
getc
字符輸入(控制臺)
getchar
字符串輸入(控制臺)
gets
字符輸出(控制臺)
putc
字符輸出(控制臺)
putchar
字符串輸出(控制臺)
puts
字符輸出到流的頭部
ungetc
直接輸入輸出
直接流讀操作
fread
直接流寫操作
fwrite
文件定位函數
得到文件位置
fgetpos
文件位置移動
fseek
文件位置設置
fsetpos
得到文件位置
ftell
文件位置復零位
remind
錯誤處理函數
錯誤清除
clearerr
文件結尾判斷
feof
文件錯誤檢測
ferror
得到錯誤提示字符串
perror
實用工具函數
本分類給出了一些函數無法按以上分類,但又是編程所必須要的。
頭文件
stdlib.h
函數列表
函數類別
函數用途
詳細說明
字符串轉換函數
字符串轉換為整數
atoi
字符串轉換為長整數
atol
字符串轉換為浮點數
strtod
字符串轉換為長整數
strtol
字符串轉換為無符號長整型
strtoul
偽隨機序列產生函數
產生隨機數
rand
設置隨機函數的起動數值
srand
存儲管理函數
分配存儲器
calloc
釋放存儲器
free
存儲器分配
malloc
重新分配存儲器
realloc
環境通信
中止程序
abort
退出程序執行,并清除環境變量
atexit
退出程序執行
exit
讀取環境參數
getenv
程序掛起,臨時執行一個其他程序
system
搜索和排序工具
二分查找(數據必須已排序)
bsearch
快速排序
qsort
整數運算函數
求絕對值
abs
div
得到除法運算底商和余數
求長整形底絕對值
labs
求長整形除法的商和余數
ldiv
多字節字符函數
得到多字節字符的字節數
mblen
得到多字節字符的字節數
mbtowc
多字節字符轉換
wctomb
多字節字符的字符串操作
將多字節串轉換為整數數組
mbstowcs
將多字節串轉換為字符數組
mcstowbs
字符串處理
本分類的函數用于對字符串進行合并、比較等操作
頭文件
string.h
函數列表
函數類別
函數用途
詳細說明
字符串拷貝
塊拷貝(目的和源存儲區不可重疊)
memcpy
塊拷貝(目的和源存儲區可重疊)
memmove
串拷貝
strcpy
按長度的串拷貝
strncpy
字符串連接函數
串連接
strcat
按長度連接字符串
strncat
串比較函數
塊比較
memcmp
字符串比較
strcmp
字符串比較(用于非英文字符)
strcoll
按長度對字符串比較
strncmp
字符串轉換
strxfrm
字符與字符串查找
字符查找
memchr
字符查找
strchr
字符串查找
strcspn
字符串查找
strpbrk
字符串查找
strspn
字符串查找
strstr
字符串分解
strtok
雜類函數
字符串設置
memset
錯誤字符串映射
strerror
求字符串長度
strlen
日期和時間函數
本類別給出時間和日期處理函數
頭文件
time.h
函數列表
函數類別
函數用途
詳細說明
時間操作函數
得到處理器時間
clock
得到時間差
difftime
設置時間
mktime
得到時間
time
時間轉換函數
得到以ASCII碼表示的時間
asctime
得到字符串表示的時間
ctime
得到指定格式的時間
strftime
函數庫未來的發展方向
本部分用于說明各類別函數庫在將來如何發展。
序號
庫類別
頭文件
詳細說明
1
錯誤處理
errno.h
2
字符處理
ctype.h
3
地區化
local.h
4
數學函數
math.h
5
信號處理
signal.h
6
輸入輸出
stdio.h
7
實用工具程序
stdlib.h
8
字符串處理
string.h
C語言的庫函數在LIB目錄里面。
庫函數是將函數封裝入庫,供用戶使用的一種方式。方法是把一些常用到的函數編完放到一個文件里,供不同的人進行調用。調用的時候把它所在的文件名用#include加到里面就可以了。一般是放到lib文件里的。
擴展資料:
C語言的語句十分簡單,如果要使用C語言的語句直接計算sin或cos函數,就需要編寫頗為復雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
C語言的庫函數并不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要編制并提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。事實上,在編寫C語言程序時,應當盡可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。
有一些代碼,我們編程時經常用到,或者我們對某些部分很熟悉,并寫出了一些可用的接口。這時,我們會考慮把這些c文件做成一個lib庫,以方便自己使用,或這給別人調用。
我這里介紹下在vc++6.0下如何來制作靜態庫:
第一步:創建一個工程,選擇Win32Static Library,輸入工程名。這時就創建好了。
第二步:工程創建好了,再點擊新建,這時選擇文件,選擇c++ source file選項,創建一個.c
文件。
在這個文件中,你可以寫入你要做成庫的c函數。當然,可以繼續創建其他c文件,然后將要供外部使用的接口單獨放到頭文件中,一般而言,一個c文件對應一個頭文件。
第三步:完成以上步驟后,我們就可以生成庫了。事實上,我們點擊編譯即可,這時就可以生成.lib文件了。
一般情況下,是可以正常生成lib文件的。有頭文件和lib文件就可以給別人用了。然后我們可以寫一個測試函數來試試可不可以使用。
要調用生成的lib中的函數,就要引入頭函數。這時,你把lib和頭文件放入當前工程中,但build的時候卻顯示了連接錯誤。那是因為你沒有把lib文件包含進來。加入下面這句話即可了:
#pragma comment(lib, "mylib.lib ")
Ok,自己的lib庫就這樣做成了。以后可以隨便調用了。