320 likes | 412 Views
◎ 標準函數. 標準函數庫中,提供了許多不同功能的函數,而這些函數的原型宣告以及使用函數相關的定義,依照相關函數的分類,分別定義在不同的標頭檔之中。 本來呼叫使用標準函數庫裡的函數,也就是使用模組裡的函數,是不需要引入其函數的原型宣告的,編譯器會自動連結( link )不同模組間的函數,使其正常的執行 如果事先宣告函數的原型,在編譯時,編譯器會依照它的原型檢查呼叫函數的引數個數、型態與傳回值的型態,事先發現錯誤,這是宣告原型的好處。
E N D
◎ 標準函數 • 標準函數庫中,提供了許多不同功能的函數,而這些函數的原型宣告以及使用函數相關的定義,依照相關函數的分類,分別定義在不同的標頭檔之中。 • 本來呼叫使用標準函數庫裡的函數,也就是使用模組裡的函數,是不需要引入其函數的原型宣告的,編譯器會自動連結(link)不同模組間的函數,使其正常的執行 • 如果事先宣告函數的原型,在編譯時,編譯器會依照它的原型檢查呼叫函數的引數個數、型態與傳回值的型態,事先發現錯誤,這是宣告原型的好處。 • 如果呼叫函數時需先使用其相關定義宣告一些資料,若沒引入標頭檔就會有未定義的情形而無法編譯,所以還是養成使用到那個函數,就先引入那個函數所屬的標頭檔。
時間與日期函數 • C語言中常用的時間與日期函數列表如下:
time 取得目前時間之秒數 • 【函數原型】time_t time(time_t *tp); • 【標 頭 檔】<time.h> • 【說 明】取得目前時間之秒數。 • 【傳入參數】 tp為指定存放總秒數的長整數 位址,若不需要可傳入 NULL。 • 【傳 出 值】目前的秒數。
ctime取得指定秒數之日期與時間字串 • 【函數原型】char* ctime(const time_t *tp); • 【標 頭 檔】<time.h> • 【說 明】將time_t型態的總秒數tp,轉換 成日期與時間字串,格式如同 Sun Mar 09 21:31:28 2003並且 加上換行符號。 • 【傳入參數】tp為以time函數取得總秒數之變 數位址。 • 【傳 出 值】換算之日期與時間字串的字元陣 列起始位址。
gmtime--取得指定時間秒數之格林威治時間資料 • 【函數原型】struct tm* gmtime(const time_t *tm); • 【標 頭 檔】<time.h> • 【說 明】傳回指定時間秒數tm格林威治時 間之結構指標。 • 【傳入參數】指定time_t型態之時間秒數tp的 位址。 • 【傳 出 值】格林威治時間資料之結構位址。
Localtime--取得指定時間秒數之時間資料 • 【函數原型】struct tm* localtime(const time_t *tm); • 【標 頭 檔】<time.h> • 【說 明】傳回指定時間秒數tm本地時間之 結構指標。 • 【傳入參數】指定time_t型態時間秒數tm的位 址。 • 【傳 出 值】系統中本地時間資料之結構位 址。
clock--取得程式開始執行後的震盪滴答次數 • 【函數原型】clock_t clock(void); • 【標 頭 檔】<time.h> • 【說 明】取得程式開始執行後的震盪滴答 ticks次數。 • 【傳入參數】無。 • 【傳 出 值】震盪滴答ticks次數。
亂數函數 • 常用的亂數函數列表如下:
rand取得亂數值 • 【函數原型】int rand(void); • 【標 頭 檔】<stdlib.h> • 【說 明】呼叫後會傳回0~RAND_MAX的 亂數值。 • 【傳入參數】無。 • 【傳 出 值】介於0~32767的亂數值。
srand設定亂數的種子 • 【函數原型】void srand(unsigned int nseed); • 【標 頭 檔】<stdlib.h> • 【說 明】以nseed為亂數種子,來設定 rand函數所產生亂數 • 【傳入參數】nseed亂數種子值。 • 【傳 出 值】無。
型態轉換函數 • 常用的型態轉換函數列表如下:
atoi 將字串轉換為整數 • 【函數原型】 int atoi( const char* szNumber ) ; • 【標 頭 檔】 <stdlib.h> • 【說 明】 將傳入以字串型態儲存的整數數 字szNumber,轉換為整數型態。 • 【傳入參數】szNumber為欲轉換為整數型態的 字串型態之整數數字,只轉換到能 成功轉換為整數的部份。 • 【傳 出 值】轉換後之整數值。
atol將字串轉換為長整數 • 【函數原型】long atol( const char* szNumber ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】將傳入以字串型態儲存的長整數數 字szNumber,轉換為長整數型 態。 • 【傳入參數】szNumber為欲轉換為長整數型態 的字串型態之長整數數字,只轉換 到能成功轉換為長整數的部份。 • 【傳 出 值】轉換後之長整數值。
atof 將字串轉換為倍精度浮點數 • 【函數原型】double atof( const char* szNumber ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】將傳入以字串型態儲存的浮點數數字 szNumber,轉換為浮點數型態。 • 【傳入參數】szNumber為欲轉換為浮點數型態的字 串型態之浮點數數字,只轉換到能成 功轉換為浮點數的部份。 • 【傳 出 值】轉換後之浮點數值。
itoa將整數轉換為字串 • 【函數原型】char* itoa( int nValue, char* sz, int nRadix ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】將指定整數型態的整數nValue,轉 換成以nRadix為進制的數字(限2 ~36進制),放到sz所指向的字串 位址中。 • 【傳入參數】nValue為欲轉換為字串的整數。 • 【傳 出 值】轉換後數字之字元指標,即sz的位 址。
ltoa將長整數轉換為字串 • 【函數原型】char* itoa( long lnValue, char* sz, int nRadix ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】將指定長整數型態的整數 lnValue,轉換成以nRadix為進制的 數字(限2~36進制),放到sz所指 向的字串位址中。 • 【傳入參數】lnValue為欲轉換為字串的長整數。 • 【傳 出 值】轉換後數字之字元指標,即sz的位 址。
abort以不正常的方式終止程式的執行 • 【函數原型】void abort( void ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】以不正常的方式強迫程式馬上停 止執行。 • 【傳入參數】無。 • 【傳 出 值】無。
Exit 正常直接結束程式的執行 • 【函數原型】void exit( int nStatus ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】以正常的方式結束程式的執行, 程式結束前會先把檔案緩衝區的 資料寫回檔案中,再關閉檔案, 並且程式結束前會呼叫atexit所登 記,程式結束前執行的函數。 • 【傳入參數】nStatus值為傳遞給上一個呼叫母程序的值 • 【傳 出 值】無。
atexit登記程式正常結束前執行的函數 • 【函數原型】int atexit( void (*pfuncExitProcessing)(void) ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】登記程式正常執束前會執行的函數, 在atexit原型宣告括號中的void (*pfuncExitProcessing)(void),是函 數指標的原型宣告,其為無傳入參數 與傳出值的型式,使用atexit函數時 直接把函數名稱放到括號內即可。
system執行系統的指令 • 【函數原型】int system( const char* szCommand ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】 執行指定作業系統的指令 szCommand。 • 【傳入參數】szCommand為指定執行作業系統的 指令。 • 【傳 出 值】0為執行成功,-1為執行失敗。
kbhit檢查是否有由鍵盤輸入資料 • 【函數原型】int kbhit( void ) ; • 【標 頭 檔】<conio_mingw.h> • 【說 明】檢查是否有由鍵盤輸入資料。 • 【傳入參數】無。 • 【傳 出 值】0為無鍵盤輸入的情形,非0值則 有。
getenv取得系統中指定的環境變數內容 • 【函數原型】char* getenv( const char* szVarName ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】取得系統中指定名稱szVarName 之環境變數的內容。 • 【傳入參數】szVarName為指定找尋系統中環 境變數的名稱。 • 【傳 出 值】如果找到則傳出字串指標,沒找 到則傳出NULL。
putenv設定系統的環境變數 • 【函數原型】char* putenv( const char* szNameEqValue ) ; • 【標 頭 檔】<stdlib.h> • 【說 明】以字串szNameEqValue設定系統 的環境變數。 • 【傳入參數】szNameEqValue為設定的環境變 數名稱與內容。 • 【傳 出 值】0值為設定成功,-1值為設定失 敗。