庫函數(shù)(Library function)是把函數(shù)放到庫里,供別人使用的一種方式。.方法是把一些常用到的函數(shù)編完放到一個文件里,供不同的人進(jìn)行調(diào)用。調(diào)用的時候把它所在的文件名用#include加到里面就可以了。一般是放到lib文件里的。
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)與策劃設(shè)計,深圳網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:深圳等地區(qū)。深圳做網(wǎng)站價格咨詢:18982081108
一般是指編譯器提供的可在c源程序中調(diào)用的函數(shù)??煞譃閮深悾活愂莄語言標(biāo)準(zhǔn)規(guī)定的庫函數(shù),一類是編譯器特定的庫函數(shù)。
由于版權(quán)原因,庫函數(shù)的源代碼一般是不可見的,但在頭文件中你可以看到它對外的接口
庫函數(shù)簡介。
C語言的語句十分簡單,如果要使用C語言的語句直接計算sin或cos函數(shù),就需要編寫頗為復(fù)雜的程序。因?yàn)镃語言的語句中沒有提供直接計算sin或cos函數(shù)的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數(shù)printf。
C語言的庫函數(shù)并不是C語言本身的一部分,它是由編譯程序根據(jù)一般用戶的需要編制并提供用戶使用的一組程序。C的庫函數(shù)極大地方便了用戶,同時也補(bǔ)充了C語言本身的不足。事實(shí)上,在編寫C語言程序時,應(yīng)當(dāng)盡可能多地使用庫函數(shù),這樣既可以提高程序的運(yùn)行效率,又可以提高編程的質(zhì)量。
這里調(diào)用的是靜態(tài)庫。
函數(shù)庫:函數(shù)庫是由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫中存放函數(shù)的名稱和對應(yīng)的目標(biāo)代碼,以及連接過程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫。
庫函數(shù):存放在函數(shù)庫中的函數(shù)。庫函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。
連接程序:將編譯程序生成的目標(biāo)文件連接在一起生成一個可執(zhí)行文件。
頭文件:有時也稱為包含文件。C語言庫函數(shù)與用戶程序之間進(jìn)行信息通信時要使用的數(shù)據(jù)和變量,在使用某一庫函數(shù)時,都要在程序中嵌入(用#include)該函數(shù)對應(yīng)的頭文件。
由于C語言編譯系統(tǒng)應(yīng)提供的函數(shù)庫尚無國際標(biāo)準(zhǔn)。不同版本的C語言具有不同的庫函數(shù),用戶使用時應(yīng)查閱有關(guān)版本的C的庫函數(shù)參考手冊。我們以Turbo C為例簡介一下C的庫函數(shù),并附錄中給出了Turbo C的部分常用庫函數(shù)。
C語言輸入輸出函數(shù)有很多,標(biāo)準(zhǔn)I/O函數(shù)中包含了如下幾個常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結(jié)束的語句為
(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin時,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運(yùn)行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語句:while
((c
=
getchar())
!=
'#')這是以#來結(jié)束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標(biāo)準(zhǔn)流stdout中去.
char
*
gets(char
*str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會在輸出到最后時添加一個換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)不大于num-1.因?yàn)閒gets函數(shù)會在末尾加上一個空字符以構(gòu)成一個字符串.另外fgets在讀取到換行符后不會將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當(dāng)前指定位置.
int
fscanf(FILE
*fp,
char
*format,
輸入列表)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,
輸出列表)
fprintf將格式化數(shù)據(jù)寫入流式文件中.
數(shù)據(jù)塊讀寫函數(shù)
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
參數(shù)說明:
buffer:是一個指針。
對fread
來說,它是讀入數(shù)據(jù)的存放地址。
對fwrite來說,是要輸出數(shù)據(jù)的地址(均指起始地址)。
size:
要讀寫的字節(jié)數(shù)。
count:
要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項。
fp:
文件型指針。
在?C語言程序設(shè)計里,C 標(biāo)準(zhǔn)函數(shù)庫(C Standard library) ?是所有符合標(biāo)準(zhǔn)的頭文件(head file)的集合,以及常用的函數(shù)庫實(shí)現(xiàn)程序,例如I/O 輸入輸出和字符串控制。不像?COBOL、Fortran?和?PL/I等編程語言,在 C 語言的工作任務(wù)里不會包含嵌入的關(guān)鍵字,所以幾乎所有的 C 語言程序都是由標(biāo)準(zhǔn)函數(shù)庫的函數(shù)來創(chuàng)建的。
每一個函數(shù)的名稱與特性會被寫成一個電腦文件,這個文件就稱為頭文件,但是實(shí)際的函數(shù)實(shí)現(xiàn)是被分存到函數(shù)庫文件里。頭文件的命名和領(lǐng)域是很常見的,但是函數(shù)庫的組織架構(gòu)也會因?yàn)椴煌木幾g器而有所不同。標(biāo)準(zhǔn)函數(shù)庫通常會隨附在編譯器上。因?yàn)?C 編譯器常會提供一些額外的非?ANSI C?函數(shù)功能,所以某個隨附在特定編譯器上的標(biāo)準(zhǔn)函數(shù)庫,對其他不同的編譯器來說,是不兼容的。