c語言的疑惑(一)頭文件: stdlib.h


stdlib.hC標准函數庫頭文件,聲明了數值與字符串轉換函數, 偽隨機數生成函數, 動態內存分配函數, 進程控制函數等公共函數。 C++程序應調用等價的cstdlib頭文件.

當你需要使用一下函數的時候,可以將這個頭文件包含進來:

函數

stdlib.h中聲明的庫函數可分為六類:類型轉換、偽隨機數、動態內存分配與回收管理、進程控制、搜索及排序、簡單數學。

 

類型轉換

atof
字符串轉換為雙精度浮點數。相當於strtod(s, (char**)NULL).

atoi
把字符串轉換為整型. 相當於(int)strtol(s, (char**)NULL, 10).

atol
把字符串轉換為長整型. Equivalente a strtol(s, (char**)NULL, 10).

atoll
把字符串轉換為長長整型. Equivalente a strtol(s, (char**)NULL, 10). 這是C99新增加的庫函數。

strtod
把字符串轉換為雙精度浮點數,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

strtof
把字符串轉換為單精度浮點數,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

strtold
把字符串轉換為長雙精度浮點數,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

strtol
把字符串轉換為長整型,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

strtoll
把字符串轉換為long long int,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

strtoul
把字符串轉換為無符號長整形,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

strtoull
把字符串轉換為unsigned long long int,檢查結果是否溢出,並返回字符串不能轉換部分的地址.

偽隨機數序列生成

rand
返回在0到RAND_MAX之間的偽隨機數. 不接受參數作為隨機數種子,因此產生的偽隨機數列相同,有利於程序調試。

srand
初始化rand()接受無符號整型參數作為偽隨機數種子.如果種子相同,偽隨機數列也相同。

內存的分配與釋放

aligned_alloc
邊界對齊的動態內存分配.

calloc
數組的動態內存分配,且初始化為全零

malloc
動態內存分配,其內容不初始化

realloc
釋放老的動態內存塊,按照給出的尺寸分配新的動態內存塊,老的內存塊的內容盡量復制到新的內存塊

free
系統釋放動態分配的內存. 如果是空指針,則無動作發生;如果指針所指不是動態分配的內存塊或者是已釋放的內存塊,則行為是未定義的。

進程控制/與運行環境的溝通

abort
導致程序非正常的結束,各種流緩沖區與臨時文件直接放棄。實際上拋出raise(SIGABRT),缺省的信號處理行為是使用退出代碼3執行終止(terminate)操作。如果SIGABRT被捕捉且信號處理程序不返回,則程序將不終止.

atexit
登記一個函數,當程序使用exit正常退出時被登記的函數自動被調用.

exit
程序正常終止。首先atexit()登記的函數按照登記的逆序被調用;如果多次調用atexit登記了多個函數,按照登記的逆序調用這些函數。如果一個函數被登記了多次,則程序正常退出時該函數也將被調用多次。然后所有緩沖區中的數據被寫回(flushed);所有打開着的流被關閉;tmpfile函數創建的文件被刪除。最后,控制權返回給調用環境,返回數值表示程序返回時的狀態,0表示EXIT_SUCCESS, 1表示EXIT_FAILURE.

at_quick_exit
登記一個函數,當程序使用quick_exit正常退出時被登記的函數自動被調用.

_Exit
程序正常終止, 但atexit(), at_quick_exit(), signal()登記的函數不被調用; 打開的流、文件是否被關閉,由編譯器的實現者決定

getenv
獲得某一個環境變量的字符串值,如果該環境變量不存在,返回NULL.

quick_exit
程序正常終止, 但atexit(), 登記的函數不被調用; at_quick_exit()登記的函數按登記順序的逆序被調用。

system
把參數作為外部環境的命令執行。 如果參數為空,則判斷外部環境是否有命令解釋器。

搜索與排序

bsearch
折半搜索.

qsort
快速排序.

整數算術

abs, labs, llabs
計算整數的絕對值.

div, ldiv, lldiv
計算整數除法的商與余數.

多字節字符/寬字符轉換

mblen
計算多字節字符的長度並確定是否為有效字符 .

mbtowc
多字節字符轉換為寬字符.

wctomb
寬字符轉換為多字節字符.

多字節字符串/寬字符串轉換

mbstowcs
多字節字符串轉換為寬字符串.

wcstombs
寬字符串轉換為多字節字符串.

詳細請訪問:

https://zh.wikipedia.org/wiki/Stdlib.h


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM