標準函式庫

2021-07-24 12:43:29 字數 3462 閱讀 4941

1、rand與srand函式產生偽隨機數

[cpp]view plain

copy

print?

intrand(

void

);  

void

srand(unsigned 

intseed);  

rand返回乙個範圍在0和rand _max之間的偽隨機數,為了避免程式每次執行時獲得相同的隨機數序列,可以使用srand函式對隨機數發生器進行初始化;

常用的技巧是使用每天的時間作為隨機數發生器的種子:

[cpp]view plain

copy

print?

srand((unsigned 

int)time(0));  

2、處理日期和時間的函式位於之中

(1)clock函式

[cpp]view plain

copy

print?

clock_t

clock(

void

);  

clock函式返回從程式開始執行起處理器所消耗的時間;往往是返回乙個數字,為了將其轉換為秒,需要將它除以clocks_per_sec;

通常使用方法是兩個clock函式返回值相減得到執行時間;

(2)time函式

[cpp]view plain

copy

print?

time_t

time(

time_t

*returned_value);  

time函式返回當前的日期時間;

注: 呼叫time函式兩次並把兩個值相減由此判斷期間所流逝的時間是很危險的操作方式;

(3)ctime函式與difftime函式

[cpp]view plain

copy

print?

char

*ctime(

time_t

const

*time_value);  

double

difftime(

time_t

time1, 

time_t

time2);  

ctime函式引數是指向time_t的指標,並返回乙個指向字串的指標,字串格式如下:

sun jul 4 04:02:48 1976\n\0 

difftime函式計算time1-time2的差,並把結果轉換為秒;

關於difftime的例子:

[cpp]view plain

copy

print?

#include 

#include 

#include 

intmain(

void

)    

time(&t2);  

d = difftime(t2, t1);  

printf("%f\n"

, d);  

return

0;  

}   

[cpp]view plain

copy

print?

關於ctime的例子:  

#include 

#include 

intmain(

void

)    

(4)gmtime函式與localtime函式

[cpp]view plain

copy

print?

struct

tm*gmtime(

time_t

const

*time_value);  

struct

tm*localtime(

time_t

const

*time_value);  

gmtime函式將時間值轉換為utc時間,localtime函式把時間轉換為當地時間;

注:乙個常見的錯誤忘了tm_year這個值與1900相加;

3、訊號表示乙個程式的執行期間可能發生的不可預料的事件;

4、當乙個訊號發生時系統所採取的預設反應是由編譯器定義的,一般是終止程式,但是我們可以通過定義乙個訊號處理函式並使用signal函式對其進行設定,從而改變訊號的預設行為;

5、處理訊號

[cpp]view plain

copy

print?

intraise(

intsig);  

void

(*signal(

intsig, 

void

(*handler)(

int)))(

int);  

raise函式用於顯式的引發乙個訊號;

signal是乙個函式,返回乙個函式指標,後者所指向的函式接受乙個整型引數且沒有返回值;

6、volatile關鍵字防止編譯器以一種可能修改程式含義的方式「優化」程式;

7、終止執行函式

[cpp]view plain

copy

print?

void

abort(

void

);  

void

atexit(

void

(func)(

void

));  

void

exit(

intstatus);  

abort函式用於不正常的終止乙個正在執行的程式;

atexit函式可以把一些函式註冊為退出函式,當程式將要正常終止時(或者由於呼叫exit,或由於main函式返回),退出函式將被呼叫;

總之:當exit函式被呼叫時,所以被atexit函式註冊為退出函式的函式將按照它們所註冊的順序被反序呼叫,然後所有用於流的緩衝區被重新整理,所有開啟的檔案被關閉,用tmpfile函式建立的檔案被刪除,然後退出狀態返回給宿主環境,程式停止執行;

8、斷言()

[cpp]view plain

copy

print?

void

assert(

intexpression);  

這是乙個巨集,當它被執行時,這個巨集對表示式引數進行測試,如果它的值為假,它就向標準錯誤列印一條診斷資訊並終止程式;

注:(1)assert只適用於驗證必須為真的表示式;

(2)當ndebug被定義後,預處理器將丟棄所有的斷言而不必從原始檔中把所有的斷言實際刪除;

標準I O函式庫

標準i o函式庫 c標準庫提供了檔案的標準 i o 函式庫,相比前述的系統呼叫,主要差別是實現了跨平台的使用者態緩衝的解決方案。標準i o庫使 用簡單,與系統呼叫i o相似,也包括開啟 讀寫 關閉這些操作,主要的函式列舉如下。開啟與關閉檔案 fopen,fclose。讀寫檔案 fread,fwrit...

CG 標準函式庫

函式 功能描述 abs x 返回輸入引數的絕對值 acos x 反餘切函式,輸入引數範圍為 1,1 返回 0,區間的角度值 all x 如果輸入引數均不為0,則返回ture 否則返回flase。運算 any x 輸入引數只要有其中乙個不為0,則返回true。asin x 反正弦函式,輸入引數取值區間...

Wml的標準函式庫

6.1 wmlscript規則 這些標準函式庫提供乙個擴充套件 wmlscript語言的機制,這些特定的函式庫必須遵循 wmlscript的規則。支援的資料格式 下面的wmlscript格式使用於程式的定義之中,這樣能記錄程式引數與迴轉值的格式。boolean integer float strin...