函數(shù)是一組一起執(zhí)行一個任務的語句。每個 C 程序都至少有一個函數(shù),即主函數(shù) main() ,所有簡單的程序都可以定義其他額外的函數(shù)。
專業(yè)成都網站建設公司,做排名好的好網站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網站建設,五站合一網站設計制作,服務好的網站設計公司,網站設計制作、成都網站設計負責任的成都網站制作公司!
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來決定的,但在邏輯上,劃分通常是根據(jù)每個函數(shù)執(zhí)行一個特定的任務來進行的。
C 標準庫提供了大量的程序可以調用的內置函數(shù)。例如,函數(shù) strcat() 用來連接兩個字符串,函數(shù) memcpy() 用來復制內存到另一個位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
C 語言中的函數(shù)定義的一般形式如下:
在 C 語言中,函數(shù)由一個函數(shù)頭和一個函數(shù)主體組成。下面列出一個函數(shù)的所有組成部分:
以下是 max() 函數(shù)的源代碼。該函數(shù)有兩個參數(shù) num1 和 num2,會返回這兩個數(shù)中較大的那個數(shù):
創(chuàng)建 C 函數(shù)時,會定義函數(shù)做什么,然后通過調用函數(shù)來完成已定義的任務。
當程序調用函數(shù)時,程序控制權會轉移給被調用的函數(shù)。被調用的函數(shù)執(zhí)行已定義的任務,當函數(shù)的返回語句被執(zhí)行時,或到達函數(shù)的結束括號時,會把程序控制權交還給主程序。
調用函數(shù)時,傳遞所需參數(shù),如果函數(shù)返回一個值,則可以存儲返回值。例如:
如上把 max() 函數(shù)和 main() 函數(shù)放一塊,編譯源代碼。當運行最后的可執(zhí)行文件時,會產生下列結果:
形式參數(shù)就像函數(shù)內的其他局部變量,在進入函數(shù)時被創(chuàng)建,退出函數(shù)時被銷毀。
當調用函數(shù)時,有兩種向函數(shù)傳遞參數(shù)的方式:
默認情況下,C 使用 傳值調用 來傳遞參數(shù)。一般來說,這意味著函數(shù)內的代碼不能改變用于調用函數(shù)的實際參數(shù)。
頭函數(shù)在預處理里面,也就是在里面包含了很多的函數(shù)原型以及定義。
比如stdio.h中就包含printf,scanf等等函數(shù)。
不包含會報警告。
C語言
函數(shù):C語言里執(zhí)行的就是函數(shù),函數(shù)里有很多執(zhí)行語句,這個函數(shù)并不是數(shù)學里面的函數(shù),可以理解成一個容器,這個容器里有很多可以執(zhí)行的語句。C語言從main函數(shù)開始執(zhí)行。
頭文件:就是寫在開頭用#include寫的語句,如
#includestdio.h
#includemath.h
#includestring.h
里面的英文就是“庫函數(shù)”,函數(shù)里的執(zhí)行語句都是需要從庫函數(shù)里調用,這個調用行為不用咱們管。比如:printf函數(shù)、scanf函數(shù)就需要頭文件包含stdio.h這個庫函數(shù)。
pow(求冪函數(shù))就需要頭文件包含math.h。
返回值:就是一個函數(shù)返回的值,任何一個沒有定義成void型的函數(shù)都有返回值,定義void型的函數(shù)沒有返回值。如:
int hanshu()
{
return 1;
}
這個hanshu函數(shù)的返回值就是1。
如果再有語句,如下:
int a;
a=hanshu();
那么a的值就是1
本人純原創(chuàng),拒絕復制。如有疑問請您追問,滿意的話記得采納哦~~~
在一個函數(shù)定義中,函數(shù)體之前的所有部分稱為函數(shù)頭,它給出了該函數(shù)的返回類型、每個參數(shù)的次序和類型等函數(shù)原型信息,所以當沒有專門給出函數(shù)原型說明語句時,系統(tǒng)就從函數(shù)頭中獲取函數(shù)原型信息。
一個函數(shù)的原型語句就是其函數(shù)頭的一個拷貝,當然要在最后加上語句接上結束符分號。函數(shù)原型語句與函數(shù)頭也有細微的差別,在函數(shù)原型語句中,其參數(shù)表中的每個參數(shù)允許只保留參數(shù)類型,而省略參數(shù)名,并且若使用參數(shù)名也允許與函數(shù)頭中對應的參數(shù)名不同。
全文如下:
一)、定義格式
類型名 函數(shù)名 ([參數(shù)表]) 函數(shù)體
類型名為系統(tǒng)或用戶已定義的一種數(shù)據(jù)類型,它是函數(shù)執(zhí)行過程中通過return語句要求返回的值的類型,又稱為該函數(shù)的類型。當一個函數(shù)不需要通過return語句返回一個值時,稱為無返回值函數(shù)或無類型函數(shù),此時需要使用保留字void作為類型名。當類型名為int時,可以省略不寫,但為了清楚起見,還是寫明為好。
函數(shù)名是用戶為函數(shù)所起的名字,它是一個標識符,應符合C++標識符的一般命名規(guī)則,用戶通過使用這個函數(shù)名和實參表可以調用該函數(shù)。
參數(shù)表又稱形式參數(shù)表,它包含有任意多個(含0個,即沒有)參數(shù)說明項,當多于一個時其前后兩個參數(shù)說明項之間必須用逗號分開。每個參數(shù)說明項由一種已定義的數(shù)據(jù)類型和一個變量標識符組成,該變量標識符成為該函數(shù)的形式參數(shù),簡稱形參,形參前面給出的數(shù)據(jù)類型稱為該形參的類型。一個函數(shù)定義中的參數(shù)表可以被省略,表明該函數(shù)為無參函數(shù),若參數(shù)表用void取代,則也表明是無參函數(shù),若參數(shù)表不為空,同時又不是保留字void,則稱為帶參函數(shù)。
函數(shù)體是一條復合語句,它以左花括號開始,到右花括號結束,中間為一條或若干條C++語句。
在一個函數(shù)的參數(shù)表中,每個參數(shù)可以為任一種數(shù)據(jù)類型,包括普通類型、指針類型、數(shù)組類型、引用類型等,一個函數(shù)的返回值可以是除數(shù)組類型之外的任何類型,包括普通類型、指針類型和引用類型等。另外,當不需要返回值時,應把函數(shù)定義為void類型。
二)、定義格式舉例
(1) void f1() {...}
(2) void f2(int x) {...}
(3) int f3(int x,int* p) {...}
(4) char* f4(char a[]){...}
(5) int f5(int x,double d) {...}
(6) int f6(int b[10], int n) {...}
(7) void f7(float c[][N], int m, float max) {...}
(8) bool f8(ElemType* bt, ElemType item) {...}
在第一條函數(shù)定義中,函數(shù)名為f1,函數(shù)類型為void,參數(shù)表為空,此函數(shù)是一個無參無類型函數(shù)。若在f1后面的圓括號內寫入保留字void,也表示為無參函數(shù)。
在第二條函數(shù)定義中,僅帶有一個類型為int的形參變量x,該函數(shù)沒有返回值。
在第三條函數(shù)定義中,函數(shù)名為f3,函數(shù)類型為int,函數(shù)參數(shù)為x和p,其中x為int型普通參數(shù),p為int*型指針參數(shù)。
在第四條函數(shù)定義中,函數(shù)名為f4,函數(shù)類型為char*,即字符指針類型,參數(shù)表中包含一個一維字符數(shù)組參數(shù)。注意:在定義任何類型的一維數(shù)組參數(shù)時,不需要給出維的尺寸,當然給出也是允許的,但沒有任何意義。
在第五條函數(shù)定義中,函數(shù)名為f5,返回類型為int,該函數(shù)帶有兩個形參,一個為 整型引用變量x,另一個為雙精度變量d。
在第六條函數(shù)定義中,函數(shù)名為f6,函數(shù)類型為int,即整型引用,該函數(shù)帶有兩個形參,一個是整型數(shù)組b,另一個是整型變量n。在這里定義形參數(shù)組b所給出的維的尺寸10可以被省略。
在第七條函數(shù)定義中,函數(shù)名為f7,無函數(shù)類型,參數(shù)表中包含三個參數(shù),一個為二維單精度型數(shù)組c,第二個為整型變量m,第三個為單精度引用變量max。注意:當定義一個二維數(shù)組參數(shù)時,第二維的尺寸必須給出,并且必須是一個常量表達式,第一維尺寸可給出也可不給出,其作用相同。
在第八條函數(shù)定義中,函數(shù)名為f8,返回類型為bool,即邏輯類型,該函數(shù)帶有兩個參數(shù),一個為形參bt,它為ElemType的指針引用類型,另一個為形參item,它是ElemType的引用類型,其中ElemType為一種用戶定義的類型或是通過typedef語句定義的一個類型的別名。
三)、有關函數(shù)定義的幾點說明
1. 函數(shù)原型語句
在一個函數(shù)定義中,函數(shù)體之前的所有部分稱為函數(shù)頭,它給出了該函數(shù)的返回類型、每個參數(shù)的次序和類型等函數(shù)原型信息,所以當沒有專門給出函數(shù)原型說明語句時,系統(tǒng)就從函數(shù)頭中獲取函數(shù)原型信息。
一個函數(shù)必須先定義或聲明而后才能被調用,否則編譯程序無法判斷該調用的正確性。一個函數(shù)的聲明是通過使用一條函數(shù)原型語句實現(xiàn)的,當然使用多條相同的原型語句聲明同一個函數(shù)雖然多余但也是允許的,編譯時不會出現(xiàn)錯誤。
在一個完整的程序中,函數(shù)的定義和函數(shù)的調用可以在同一個程序文件中,也可以處在不同的程序文件中,但必須確保函數(shù)原型語句與函數(shù)調用表達式出現(xiàn)在同一個文件中,并且函數(shù)原型語句出現(xiàn)在前,函數(shù)的調用出現(xiàn)在后。
通常把一個程序中用戶定義的所有函數(shù)的原型語句組織在一起,構成一個頭文件,讓該程序中所含的每個程序文件的開始(即所有函數(shù)定義之前)包含這個頭文件(通過#include命令實現(xiàn)),這樣不管每個函數(shù)的定義在哪里出現(xiàn),都能夠確保函數(shù)先聲明后使用(即調用)這一原則的實現(xiàn)。
一個函數(shù)的原型語句就是其函數(shù)頭的一個拷貝,當然要在最后加上語句接上結束符分號。函數(shù)原型語句與函數(shù)頭也有細微的差別,在函數(shù)原型語句中,其參數(shù)表中的每個參數(shù)允許只保留參數(shù)類型,而省略參數(shù)名,并且若使用參數(shù)名也允許與函數(shù)頭中對應的參數(shù)名不同。
2. 常量形參
在定義一個函數(shù)時,若只允許函數(shù)體訪問一個形參的值,不允許修改它的值,則應把該形參說明為常量,這只要在形參說明的前面加上const保留字進行修飾即可。如:
void f9(const int x, const char y);
void f10(const char* p, char key);
在函數(shù)f9的函數(shù)體中只允許使用x和y的值,不允許修改它們的值。在函數(shù)f10的函數(shù)體中只允許使用p所指向的字符對象或字符數(shù)組對象的值,不允許修改它們的值,但在函數(shù)體中既允許使用也允許修改形參key的值。
3. 缺省參數(shù)
在一個函數(shù)定義中,可根據(jù)需要對參數(shù)表末尾的一個或連續(xù)若干個參數(shù)給出缺省值,當調用這個函數(shù)時,若實參表中沒有給出對應的實參,則形參將采用這個缺省值。如:
void f11(int x, int y=0) {...}
int f12(int a[], char op='+', int k=10) {...}
函數(shù)f11的定義帶有兩個參數(shù),分別為整型變量x和y,并且y帶有缺省值0,若調用該函數(shù)的表達式為f11(a,b),將把a的值賦給x,把b的值賦給y,接著執(zhí)行函數(shù)體;若調用該函數(shù)的表達式為f11(a+b),則也是正確的調用格式,它將把a+b的值賦給x,因y沒有對應的實參,將采用缺省值0,參數(shù)傳送后接著執(zhí)行函數(shù)體。
函數(shù)f12的定義帶有三個參數(shù),其中后兩個帶有缺省值,所以調用它的函數(shù)格式有三種,一種只帶一個實參,用于向形參a傳送數(shù)據(jù),后兩個形參采用缺省值,第二種帶有兩個實參,用于分別向形參a和op傳送數(shù)據(jù),第三個形參采用缺省值,第三種帶有三個實參,分別用于傳送給三個形參。
若一個函數(shù)帶有專門的函數(shù)原型語句,則形參的缺省值只能在該函數(shù)原型語句中給出,不允許在函數(shù)頭中給出。如對于上述的f11和f12函數(shù),其對應的函數(shù)原型語句分別為:
void f11(int x, int y=0);
int f12(int a[], char op='+', int k=10);
函數(shù)定義應分別改寫為:
void f11(int x, int y) {...}
int f12(int a[], char op, int k) {...}
4. 數(shù)組參數(shù)
在函數(shù)定義中的每個數(shù)組參數(shù)實際上是指向元素類型的指針參數(shù)。對于一維數(shù)組參數(shù)說明:
數(shù)據(jù)類型 數(shù)組名[]
它與下面的指針參數(shù)說明完全等價:
數(shù)據(jù)類型 *指針變量名
其中指針變量名就是數(shù)組參數(shù)說明中的數(shù)組名。如對于f12函數(shù)定義中的數(shù)組參數(shù)說明int a[],等價于指針參數(shù)說明int* a。也就是說,數(shù)組參數(shù)說明中的數(shù)組名a是一個類型為int*的形參。注意:在變量定義語句中定義的數(shù)組,其數(shù)組名代表的是一個數(shù)組,它的值是指向第一個元素的指針常量,這與數(shù)組形參的含義有區(qū)別。
對于二維數(shù)組參數(shù)說明:
數(shù)據(jù)類型 參數(shù)名[][第二維尺寸]
它與下面的指針參數(shù)說明完全等價:
數(shù)據(jù)類型 (*參數(shù)名)[第二維尺寸]
如對于f7函數(shù)定義中的二維數(shù)組參數(shù)說明float c[][N],等價于指針參數(shù)說明float(*c)[N]。
5. 函數(shù)類型
當調用一個函數(shù)時就執(zhí)行一遍循環(huán)體,對于類型為非void的函數(shù),函數(shù)體中至少必須帶有一條return語句,并且每條return語句必須帶有一個表達式,當執(zhí)行到任一條return語句時,將計算出它的表達式的值,結束整個函數(shù)的調用過程,把這個值作為所求的函數(shù)值帶回到調用位置,參與相應的運算;對于類型為void的函數(shù),它不需要返回任何函數(shù)值,所以在函數(shù)體中既可以使用return語句,也可以不使用,對于使用的每條return語句不允許也不需要帶有表達式,當執(zhí)行到任一條return語句時,或執(zhí)行到函數(shù)體最后結束位置時,將結束函數(shù)的調用過程,返回到調用位置向下繼續(xù)執(zhí)行。
6. 內聯(lián)函數(shù)
當在一個函數(shù)的定義或聲明前加上關鍵字inline則就把該函數(shù)聲明為內聯(lián)函數(shù)。計算機在執(zhí)行一般函數(shù)的調用時,無論該函數(shù)多么簡單或復雜,都要經過參數(shù)傳遞、執(zhí)行函數(shù)體和返回等操作。若把一個函數(shù)聲明為內聯(lián)函數(shù)后,在程序編譯階段系統(tǒng)就有可能把所有調用該函數(shù)的地方都直接替換為該函數(shù)的執(zhí)行代碼,由此省去函數(shù)調用時的參數(shù)傳遞和返回操作,從而加快整個程序的執(zhí)行速度。通常可把一些相對簡單的函數(shù)聲明為內聯(lián)函數(shù),對于較復雜的函數(shù)則不應聲明為內聯(lián)函數(shù)。從用戶的角度看,調用內聯(lián)函數(shù)和一般函數(shù)沒有任何區(qū)別。下面就是一個內聯(lián)函數(shù)定義的例子,它返回形參值的立方。
inline int cube(int n)
{
return n*n*n;
}
主函數(shù)是一個程序的入口,程序第一個執(zhí)行的函數(shù)。頭文件就是一個函數(shù)的倉庫,在C中使用某函數(shù)必須包含對應頭文件。
c++函數(shù)頭,即頭文件函數(shù)。
在C語言家族程序中,頭文件被大量使用。一般而言,每個C++/C程序通常由頭文件(header files)和定義文件(definition files)組成。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明(declaration),而定義文件用于保存程序的實現(xiàn) (implementation)。 .c就是你寫的程序文件。
C/C++頭文件一覽
C
#include assert.h//設定插入點
#include ctype.h //字符處理
#include errno.h //定義錯誤碼
#include float.h //浮點數(shù)處理
#include iso646.h //對應各種運算符的宏
#include limits.h//定義各種數(shù)據(jù)類型最值的常量
#include locale.h//定義本地化C函數(shù)
#include math.h //定義數(shù)學函數(shù)
#include setjmp.h //異常處理支持
#include signal.h //信號機制支持
#include stdarg.h //不定參數(shù)列表支持
#include stddef.h //常用常量
#include stdio.h //定義輸入/輸出函數(shù)
#include stdlib.h//定義雜項函數(shù)及內存分配函數(shù)
#include string.h//字符串處理
#include time.h //定義關于時間的函數(shù)
#include wchar.h //寬字符處理及輸入/輸出
#include wctype.h//寬字符分類
傳統(tǒng)C++
#include fstream.h //改用fstream
#include iomanip.h //改用iomainip
#include iostream.h //改用iostream
#include strstrea.h //該類不再支持,改用sstream中的stringstream
————————————————————————————————
標準C++
#include algorithm //STL 通用算法
#include bitset //STL 位集容器
#include cctype //字符處理
#include cerrno //定義錯誤碼
#include cfloat //浮點數(shù)處理
#include ciso646 //對應各種運算符的宏
#include climits //定義各種數(shù)據(jù)類型最值的常量
#include clocale //定義本地化函數(shù)
#include cmath //定義數(shù)學函數(shù)
#include complex //復數(shù)類
#include csignal //信號機制支持
#include csetjmp //異常處理支持
#include cstdarg //不定參數(shù)列表支持
#include cstddef //常用常量
#include cstdio //定義輸入/輸出函數(shù)
#include cstdlib //定義雜項函數(shù)及內存分配函數(shù)
#include cstring //字符串處理
#include ctime //定義關于時間的函數(shù)
#include cwchar //寬字符處理及輸入/輸出
#include cwctype //寬字符分類
#include deque //STL 雙端隊列容器
#include exception //異常處理類
#include fstream //文件輸入/輸出
#include functional //STL 定義運算函數(shù)(代替運算符)
#include limits //定義各種數(shù)據(jù)類型最值常量
#include list//STL 線性列表容器
#include locale //本地化特定信息
#include map //STL 映射容器
#include memory //STL通過分配器進行的內存分配
#includenew //動態(tài)內存分配
#include numeric //STL常用的數(shù)字操作
#include iomanip //參數(shù)化輸入/輸出
#include ios //基本輸入/輸出支持
#include iosfwd //輸入/輸出系統(tǒng)使用的前置聲明
#include iostream //數(shù)據(jù)流輸入/輸出
#include istream //基本輸入流
#include iterator //STL迭代器
#include ostream //基本輸出流
#include queue //STL 隊列容器
#include set //STL 集合容器
#include sstream //基于字符串的流
#include stack //STL 堆棧容器
#include stdexcept //標準異常類
#include streambuf //底層輸入/輸出支持
#include string //字符串類
#include typeinfo //運行期間類型信息
#include utility //STL 通用模板類
#include valarray //對包含值的數(shù)組的操作
#include vector //STL 動態(tài)數(shù)組容器
————————————————————————————————
C99增加的部分
#include complex.h //復數(shù)處理
#include fenv.h//浮點環(huán)境
#include inttypes.h//整數(shù)格式轉換
#include stdbool.h //布爾環(huán)境
#include stdint.h //整型環(huán)境
#include tgmath.h //通用類型數(shù)學宏
頭文件 ctype.h
字符處理函數(shù): 本類別函數(shù)用于對單個字符進行處理,包括字符的類別測試和字符的大小寫轉換
----------------------------------------
字符測試是否字母和數(shù)字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否數(shù)字 isdigit
是否可顯示字符(除空格外) isgraph
是否可顯示字符(包括空格) isprint
是否既不是空格,又不是字母和數(shù)字的可顯示字符 ispunct
是否空格 isspace
是否大寫字母 isupper
是否16進制數(shù)字(0-9,A-F)字符 isxdigit
字符大小寫轉換函數(shù) 轉換為大寫字母 toupper
轉換為小寫字母 tolower
頭文件 local.h
地區(qū)化: 本類別的函數(shù)用于處理不同國家的語言差異。
----------------------------------------
地區(qū)控制 地區(qū)設置 setlocale
數(shù)字格式約定查詢 國家的貨幣、日期、時間等的格式轉換 localeconv
頭文件 math.h
數(shù)學函數(shù): 本分類給出了各種數(shù)學計算函數(shù),必須提醒的是ANSIC標準中的數(shù)據(jù)格式并不符合IEEE754標準,一些C語言編譯器卻遵循IEEE754(例如frinklin C51)
----------------------------------------
反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan
雙曲余弦 cosh
雙曲正弦 sinh
雙曲正切 tanh
指數(shù)函數(shù) exp
指數(shù)分解函數(shù) frexp
乘積指數(shù)函數(shù) fdexp
自然對數(shù) log
以10為底的對數(shù) log10
浮點數(shù)分解函數(shù) modf
冪函數(shù) pow
平方根函數(shù) sqrt
求下限接近整數(shù) ceil
絕對值 fabs
求上限接近整數(shù) floor
求余數(shù) fmod
頭文件 setjmp.h io.h
本分類函數(shù)用于實現(xiàn)在不同底函數(shù)之間直接跳轉代碼。
----------------------------------------
保存調用環(huán)境 setjmp
恢復調用環(huán)境 longjmp
頭文件 signal.h
信號處理: 該分類函數(shù)用于處理那些在程序執(zhí)行過程中發(fā)生例外的情況。
----------------------------------------
指定信號處理函數(shù) signal
發(fā)送信號 raise
頭文件 stdarg.h
可變參數(shù)處理: 本類函數(shù)用于實現(xiàn)諸如printf,scanf等參數(shù)數(shù)量可變底函數(shù)。
----------------------------------------
可變參數(shù)訪問宏
可變參數(shù)開始宏 va_start
可變參數(shù)結束宏 va_end
可變參數(shù)訪問宏 訪問下一個可變參數(shù)宏 va_arg
頭文件 stdio.h
輸入輸出函數(shù):該分類用于處理包括文件、控制臺等各種輸入輸出設備,各種函數(shù)以“流”的方式實現(xiàn)
----------------------------------------
刪除文件 remove
修改文件名稱 rename
生成臨時文件名稱 tmpfile
得到臨時文件路徑 tmpnam
文件訪問 關閉文件 fclose
刷新緩沖區(qū) fflush
打開文件 fopen
將已存在的流指針和新文件連接 freopen
設置磁盤緩沖區(qū) setbuf
設置磁盤緩沖區(qū) setvbuf
格式化輸入與輸出函數(shù)
格式輸出 fprintf
格式輸入 fscanf
格式輸出(控制臺) printf
格式輸入(控制臺) scanf
格式輸出到緩沖區(qū) sprintf
從緩沖區(qū)中按格式輸入 sscanf
格式化輸出 vfprintf
格式化輸出 vprintf
格式化輸出 vsprintf
字符輸入輸出函數(shù)
輸入一個字符 fgetc
字符串輸入 fgets
字符輸出 fputc
字符串輸出 fputs
字符輸入(控制臺) getc
字符輸入(控制臺) getchar
字符串輸入(控制臺) gets
字符輸出(控制臺) putc
字符輸出(控制臺) putchar
字符串輸出(控制臺) puts
字符輸出到流的頭部 ungetc
直接輸入輸出
直接流讀操作 fread
直接流寫操作 fwrite
文件定位函數(shù)
得到文件位置 fgetpos
文件位置移動 fseek
文件位置設置 fsetpos
得到文件位置 ftell
文件位置復零位 remind
錯誤處理函數(shù)
錯誤清除 clearerr
文件結尾判斷 feof
文件錯誤檢測 ferror
得到錯誤提示字符串 perror
頭文件 stdlib.h
實用工具函數(shù): 本分類給出了一些函數(shù)無法按以上分類,但又是編程所必須要的。
----------------------------------------
字符串轉換函數(shù)
字符串轉換為整數(shù) atoi
字符串轉換為長整數(shù) atol
字符串轉換為浮點數(shù) strtod
字符串轉換為長整數(shù) strtol
字符串轉換為無符號長整型 strtoul
偽隨機序列產生函數(shù)
產生隨機數(shù) rand
設置隨機函數(shù)的起動數(shù)值 srand
存儲管理函數(shù)
分配存儲器 calloc
釋放存儲器 free
存儲器分配 malloc
重新分配存儲器 realloc
環(huán)境通信
中止程序 abort
退出程序執(zhí)行,并清除環(huán)境變量 atexit
退出程序執(zhí)行 exit
讀取環(huán)境參數(shù) getenv
程序掛起,臨時執(zhí)行一個其他程序 system
搜索和排序工具 二分查找(數(shù)據(jù)必須已排序) bsearch
快速排序 qsort
整數(shù)運算函數(shù) 求絕對值 abs
得到除法運算底商和余數(shù) div
求長整形底絕對值 labs
求長整形除法的商和余數(shù) ldiv
多字節(jié)字符函數(shù) 得到多字節(jié)字符的字節(jié)數(shù) mblen
得到多字節(jié)字符的字節(jié)數(shù) mbtowc
多字節(jié)字符轉換 wctomb
多字節(jié)字符的字符串操作 將多字節(jié)串轉換為整數(shù)數(shù)組 mbstowcs
將多字節(jié)串轉換為字符數(shù)組 mcstowbs
頭文件 string.h
字符串處理: 本分類的函數(shù)用于對字符串進行合并、比較等操作
----------------------------------------
字符串拷貝 塊拷貝(目的和源存儲區(qū)不可重疊) memcpy
塊拷貝(目的和源存儲區(qū)可重疊) memmove
串拷貝 strcpy
按長度的串拷貝 strncpy
字符串連接函數(shù) 串連接 strcat
按長度連接字符串 strncat
串比較函數(shù) 塊比較 memcmp
字符串比較 strcmp
字符串比較(用于非英文字符) strcoll
按長度對字符串比較 strncmp
字符串轉換 strxfrm
字符與字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
雜類函數(shù) 字符串設置 memset
錯誤字符串映射 strerror
求字符串長度 strlen
頭文件 time.h
日期和時間函數(shù): 本類別給出時間和日期處理函數(shù)
----------------------------------------
時間操作函數(shù)得到處理器時間 clock
得到時間差 difftime
設置時間 mktime
得到時間 time
時間轉換函數(shù) 得到以ASCII碼表示的時間 asctime
得到字符串表示的時間 ctime
得到指定格式的時間 strftime
序號 庫類別 頭文件
----------------------------------------
1 錯誤處理 errno.h
2 字符處理 ctyphe.
3 地區(qū)化 local.h
4 數(shù)學函數(shù) math.h
5 信號處理 signal.h
6 輸入輸出 stdio.h
7 實用工具程序 stdlib.h
8 字符串處理 string.h