C標(biāo)準(zhǔn)庫

今天總結(jié)一下C語言標(biāo)準(zhǔn)庫。

C語言標(biāo)準(zhǔn)庫(C89)包含15個(gè)頭文件,新的C99以及C11又定義了一些其他的庫,這里略過不說,常用的如下,

<assert.h> - 包含assert()函數(shù),這個(gè)函數(shù)現(xiàn)在還有人用嗎?至少我這幾年沒有見人用了,因?yàn)樗鼤?huì)直接導(dǎo)致進(jìn)程退出,而且只會(huì)記下當(dāng)前的調(diào)用棧,只能發(fā)現(xiàn)問題而不能幫助解決問題,在現(xiàn)實(shí)中使用日志系統(tǒng)或者直接用標(biāo)準(zhǔn)輸出記錄問題會(huì)幫助更大。

<ctype.h> - 字符測(cè)試函數(shù),可能有很多人喜歡自己實(shí)現(xiàn)類似islower()或者tolower()的函數(shù),不過這個(gè)庫里的函數(shù)在某些場(chǎng)景真的很有用。不如isalnum()檢查是不是字母或者數(shù)字,isprint()檢查是不是可打印的字符,還有isspace()可以檢查是不是白空格。

<errno.h> - 很多庫函數(shù)或者系統(tǒng)函數(shù)會(huì)把錯(cuò)誤代碼寫入errno. 記錄錯(cuò)誤日志時(shí),要檢查一下出錯(cuò)的調(diào)用是否記錄errno。

<math.h> - 數(shù)學(xué)運(yùn)算的庫,常用的如冪運(yùn)算pow()和余數(shù)運(yùn)算fmod().

<stdarg.h> - 如果函數(shù)中使用了可變參數(shù),需要用這個(gè)庫來解析這些參數(shù)。

<stdio.h> - 這可能是C語言最常用的頭文件了吧,定義了一些文件操作的方法,比如打開文件fopen(),和關(guān)閉文件fclose(),以及輸出格式化字符串printf(), sprintf()和snprintf()。注意snprintf()是C99標(biāo)準(zhǔn)定義的函數(shù),有些老的編譯器不支持。

<stdlib.h> - 定義了字符串轉(zhuǎn)換成數(shù)字的函數(shù)如atof(), atoi(),以及內(nèi)存分配和釋放的函數(shù)malloc(), calloc()等。

<string.h> - 定義了字符數(shù)組的操作,如strcpy(),strcmp()等。還有內(nèi)存復(fù)制的操作如memcpy(),memmove()等。

還有一些不太常用的頭文件,比如<float.h> <limits.h> <setjmp.h> <signal.h> <stddef.h> <locale.h> <time.h>.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容