C庫標頭檔案(C99)

2021-08-04 23:58:59 字數 2502 閱讀 5665

標頭檔案及其對應描述如下

  //斷言

//複數

//字元處理

// 錯誤型別

//浮點環境

//浮點型別

//整數型別格式轉換

//拼寫替換

//整數型別大小

//本地化

//數**算

//非區域性跳轉

//訊號處理

// 可變引數

//布林型別和值

//通用定義

//整數型別

//輸入輸出

// 常用工具

//字串處理

//普通數學型別

// 時間和日期

//擴充套件的多位元組/寬字元工具

// 寬字元分類和對映工具

常用檔案及檔案內函式介紹

assert.h

assert巨集的原型定義在assert.h中,其作用是如果它的條件返回錯誤,則終止程式執行,原型定義 

#include 

void

assert( int expression );

assert的作用是現計算表示式 expression ,如果其值為假(即為0),那麼它先向stderr列印一條出錯資訊,然後通過呼叫 abort 來終止程式執行。 

assert()的缺點是,頻繁的呼叫會極大的影響程式的效能,增加額外的開銷。在除錯結束後,可以通過在包含assert.h的語句之前插入 #define ndebug 來禁用assert呼叫,示例**如下:

#include 

#define ndebug

#include

stdlib.h

stdlib 標頭檔案即standard library標準庫標頭檔案。stdlib.h裡面定義了五種型別、一些巨集和通用工具函式。 型別例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 

巨集例如exit_failure、exit_success、rand_max和mb_cur_max等等; 

常用的函式如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等

signal.h

signal.h是c標準函式庫中的訊號處理部分, 定義了程式執行時如何處理不同的訊號。訊號用作程序間通訊, 報告異常行為(如除零)、使用者的一些按鍵組合(如同時按下ctrl與c鍵,產生訊號sigint)

#include 

void (*signal(int sig, void (*handler)(int)))(int);

signal()用於確定以後當訊號sig出現時的處理方法。如果handler的值是sig_dfl,那麼就採用實現定義的預設行為;如果handler的值是sig_ign,那麼就忽略該訊號;否則,呼叫handler所指向的函式(引數為訊號型別)。有效的訊號包括:

訊號解釋

sigabrt

異常終止,如呼叫abort()

sigfpe

算術運算出錯,如除數為0或溢位

sigill

非法函式映象,如非法指令

sigint

互動式訊號,如中斷。

sigsegv

非法訪問儲存器,如訪問不存在的記憶體單元。

sigterm

傳送給本程式的終止請求訊號

signal()返回訊號sig原來的的handler;如果出錯,則返回sig_err。 

當隨後出現訊號sig時,就中斷正在執行的操作,轉而執行訊號處理函式(*handler)(sig)。如果從訊號處理程式中返回,則從中斷的位置繼續執行。 

訊號的初始狀態由實現定義。

#include 

int raise(int sig); //向程式傳送訊號sig。如果傳送不成功,就返回乙個非0值。

errno.h

errno.h 是c語言c標準函式庫裡的標頭檔,定義了通過錯誤碼來回報錯誤資訊的巨集。當linux c api函式發生異常時,一般會將errno變數(需include errno.h)賦乙個整數值,不同的值表示不同的含義,可以通過檢視該值推測出錯的原因。

time.h

time.h是c/c++中的日期和時間標頭檔案。

time_t time(time_t* timer) //得到從標準計時點(一般是2023年1月1日午夜)到當前時間的秒數。

clock_t clock(void) //得到從程式啟動到此次函式呼叫時累計的毫秒數。

struct tm *localtime(const time_t *timer) //返回乙個以tm結構表達的機器時間資訊

struct tm ;

math.h

math.h標頭檔案中宣告了常用的一些數**算,比如乘方,開方運算等等

C99標準之前沒有bool型別(C99提供)

我們知道在c 裡有專門的bool型別,用來表示真或假。但是在c語言裡沒有這樣的型別。表示式的值0為假,非0為真。所以條件判斷語句 if while 非常靈活,甚至乙個指標型別都可以是條件表示式。為了使程式更清晰,我們常常會給出如下的巨集定義 typedef int bool define true ...

復合文字(C99)

1.假如需要向帶有乙個int參量的函式傳遞乙個值,您可以傳遞乙個int變數,也可以傳遞乙個int常量,比如5。在c99標準之前,陣列引數的情況是不相同的 可以傳遞陣列,但沒有所謂的陣列常量可供傳遞。c99新增了復合文字 compound literal 文字是非符號常量,例如5是int型別的文字,8...

keil arm 中配置c99方法 及 C99特性

配置方法 option c c misc controls c99 附c99特性 在ansi的標準確立後,c語言的規範在一段時間內沒有大的變動,然而c 在自己的標準化建立過程中繼續發展壯大。標準修正案一 在1994年為c語言建立了乙個新標準,但是只修正了一些c89標準中的細節和增加更多更廣的國際字符...