有很多工程師喜歡自己封裝一些標準庫已有的函式,其實自己封裝的函式,并不一定比標準庫好,有時候反而代碼更冗余,且有bug,
下面小編就來分享一下C語言常見的一些標準庫,
標準頭檔案包括:
<asset.h><ctype.h><errno.h><float.h><limits.h>
<locale.h><math.h><stdio.h><signal.h><time.h>
<stddef.h><stdlib.h><string.h><stdarg.h><setjmp.h>
一、標準定義(<stddef.h>)
檔案<stddef.h>里包含了標準庫的一些常用定義,無論我們包含哪個標準頭檔案,<stddef.h>都會被自動包含進來,
這個檔案里定義:
● 型別size_t(sizeof運算子的結果型別,是某個無符號整型);
● 型別ptrdiff_t(兩個指標相減運算的結果型別,是某個有符號整型);
● 型別wchar_t(寬字符型別,是一個整型,其中足以存放本系統所支持的所有本地環境中的字符集的所有編碼值,這里還保證空字符的編碼值為0);
● 符號常量NULL(空指標值);
● 宏offsetot (這是一個帶引數的宏,第一個引數應是一個結構型別,第二個引數應是結構成員名,
offsetot(s,m)
求出成員m在結構型別t的變數里的偏移量),
注:其中有些定義也出現在其他頭檔案里(如NULL),
二、錯誤資訊(<errno.h>)
<errno.h>定義了一個int型別的運算式errno,可以看作一個變數,其初始值為0,一些標準庫函式執行中出錯時將它設為非0值,但任何標準庫函式都設定它為0,
<errno.h>里還定義了兩個宏EDOM和ERANGE,都是非0的整數值,數學函式執行中遇到引數錯誤,就會將errno置為EDOM,如出現值域錯誤就會將errno置為ERANGE,
三、輸入輸出函式(<stdio.h>)
檔案打開和關閉:

字符輸入輸出:

getc和putc與這兩個函式類似,但通過宏定義實作,通常有下面定義:

格式化輸入輸出:

行式輸入輸出:

直接輸入輸出:

四、數學函式(<math.h>)
1.三角函式:

2.指數和對數函式:

3.其他函式:

注:所有上面未給出型別特征的函式都取一個引數,其引數與回傳值都是double型別,
下面函式回傳雙精度值(包括函式ceil和floor),在下表里,除其中有特別說明的引數之外,所有函式的其他引數都是double型別,
函式原型意義解釋:

五、字符處理函式(<ctype.h>)
見下表:

注:條件成立時這些函式回傳非0值,最后兩個轉換函式對于非字母引數回傳原字符,
六、字串函式(<string.h>)
1.字串函式
所有字串函式列在下表里,函式描述采用如下約定:s、t表示 (char *)型別的引數,cs、ct表示(const char*)型別的引數(它們都應表示字串),
n表示size_t型別的引數(size_t是一個無符號的整數型別),c是整型引數(在函式里轉換到char):
函式原型意義解釋:

2.存盤區操作
<string.h>還有一組字符陣列操作函式(存盤區操作函式),名字都以mem開頭,以某種高效方式實作,
在下面原型中,引數s和t的型別是(void *),cs和ct的型別是(const void *),n的型別是size_t,c的型別是int(轉換為unsigned char),
函式原型意義解釋:

七、功能函式(<stdlib.h>)
1.亂數函式:
函式原型意義解釋

2.動態存盤分配函式:
函式原型意義解釋

3.幾個整數函式
幾個簡單的整數函式見下表,div_t和ldiv_t是兩個預定義結構型別,用于存放整除時得到的商和余數,
div_t型別的成分是int型別的quot和rem,ldiv_t型別的成分是long型別的quot和rem,
函式原型意義解釋

4.數值轉換
函式原型意義解釋

5.執行控制
1)非正常終止函式abort,
原型是:

2)正常終止函式exit,
原型是:

導致程式按正常方式立即終止,status作為送給執行環境的出口值,0表示成功結束,兩個可用的常數為EXIT_SUCCESS,EXIT_FAILURE,
3)正常終止注冊函式atexit,
原型是:

可用本函式把一些函式注冊為結束動作,被注冊函式應當是無參無回傳值的函式,注冊正常完成時atexit回傳值0,否則回傳非零值,
6.與執行環境互動
1)向執行環境傳送命令的函式system,
原型是:

把串s傳遞給程式的執行環境要求作為系統命令執行,如以NULL為引數呼叫,函式回傳非0表示環境里有命令解釋器,如果s不是NULL,回傳值由實作確定,
2)訪問執行環境的函式getenv,
原型是:

從執行環境中取回與字串s相關聯的環境串,如果找不到就回傳NULL,本函式的具體結果由實作確定,在許多執行環境里,可以用這個函式去查看“環境變數”的值,
7.常用函式bsearch和qsort
1)二分法查找函式bsearch:

函式指標引數cmp的實參應是一個與字串比較函式strcmp類似的函式,確定排序的順序,當第一個引數keyval比第二個引數datum大、相等或小時分別回傳正、零或負值,
2)快速排序函式qsort:
qsort對于比較函式cmp的要求與bsearch一樣,設有陣列base[0],...,base[n-1],元素大小為size,用qsort可以把這個陣列的元素按cmp確定的上升順序重新排列,

最后,不管你是轉行也好,初學也罷,進階也可,如果你想學編程~
——【值得關注】我的 C/C++編程學習交流俱樂部!——

涉及:C語言、C++、windows編程、網路編程、QT圖形界面開發、Linux編程、游戲編程、資料結構與算以及資料庫......
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239866.html
標籤:C
下一篇:2021年前景最好的五門編程語言
