C標準庫學習筆記之一

來源:互聯網
上載者:User

暑假的時候買了《C標準庫》一書,但因為當時在新東方學GRE,一直沒有仔細鑽研。新學期開始又因為學SL而無暇顧及,只是平時隔三岔五的看了看。最近,C語言在熱門排行榜上又位居榜首,可見其在編程界中的重要性。於是,決定花出點時間,把以前看過的整理一下,特此作出學習筆記,一是方便自己和觀者以後複習,二是見證自己的點滴進步。

第一部分是整理自己暑假時看的內容,概括的列出標頭檔及其包含的成員。第二部分是著重講幾個常用的標頭檔及其內部實現。第三部分是通過幾個小執行個體來測試所學。

以下為標頭檔概述(上)

一、assert.h
1、void assert(int expression);
沒有傳回值,如果運算式為假則調用中斷。
二、ctype.h
1、int isalnum(int c);
檢查指定字元是否為數字或字母
2、int isalpha(int c);
檢查指定字元是否為字母
3、int iscntrl(int c);
檢查指定字元是否為:換頁符、分行符號、斷行符號符、水平定位字元、垂直定位字元、退格符、警報符。
4、int isdigit(int c);
判斷指定字元是否為數字
5、int isgraph(int c);
判斷指定字元是否為除空格" "以外的所有列印字元。
6、int islower(int c);
判斷是否指定字元為小寫字元
7、int isprint(int c);
判斷是否指定字元是包括" "在內的所有可列印的字元
8、int isspace(int c);
判斷指定字元是否為換頁符、分行符號、斷行符號符、水平定位字元、垂直定位字元、空格。
9、isupper(int c);
判斷指定字元是否為大寫字元。
10、int isxdigit(int c);
可字定義地區設定,預設和isdigit一樣。
11、int tolower(int c);
將指定字元轉換成小寫字元。
12、int toupper(int c);
將指定字元轉換成大寫字元。
三、errno.h
宏部分
四、float.h
宏部分,測試上下溢
五、limits.h
宏部分
六、locale.h
兩個函數、一種類型(struct lconv)、一些宏。
1、char *setlocale(int category,const char* locale);
2、struct lconv *localeconv(void);
七、math.h
三角函數部分:
1、double acos(double x);
計算x的三角反餘弦,如果x不在[-1,+1]中,則引發錯誤。傳回值範圍[0,PI]。
2、double asin(double x);
計算x的三角反正弦,如果x不在[-1,+1]中,則引發錯誤。傳回值範圍[-PI/2,PI/2]。
3、double atan(double x);
計算x的三角反正切。傳回值範圍[-PI/2,PI/2]。
4、double atan2(double y,double x);
計算y/x的三角反正切函數主值,如果兩個參數都為0,則返回錯誤。傳回值範圍[-PI,PI]。
5、double cos(double x);
計算x(以弧度為單位)的餘弦值。
6、double sin(double x);
計算x(以弧度為單位)的正弦值。
7、double tan(double x);
返回x(以弧度為單位)的正切值。
8、double cosh(double x);
返回x的雙曲正弦,若x的值過大,則返回錯誤。
9、double sinh(double x);
計算x的雙曲正弦,如果x的數值太大,則返回錯誤。
10、double tanh(double x);
計算x的雙曲正切。
11、double exp(double x);
計算x的指數函數。
12、double frexp(double value,int *exp);
把一個浮點數分為一個小數和一個2的正數冪(兩者乘積),整數部分存在exp中,返回小數部分。
13、double ldexp(double x,int exp);
計算x*2^exp的值並返回。
14、double log(double x);
計算x的自然對數,如果參數為負,則發生範圍錯誤。
15、double log10(double x);
計算x的以10為底的對數。
16、double modf(double value,double *iptr);
將value的整數部分傳給iptr,將小數部分返回。
冪函數部分:
1、double pow(double x,double y);
Function Computex的y次冪,要防止範圍錯誤。
2、double sqrt(double x);
Function Computex的非負平方根,如果參數為負,則發生錯誤。
取整、絕對值、求模部分:
1、double ceil(double x);
返回不小於x的最小整數。變大取整。
2、double fabs(double x);
返回x的絕對值。
3、double floor(double x);
返回不大於x的最大整數。變小取整。
4、double fmod(double x,double y);
返回x/y的餘數。
八、setjmp.h
定義了一個類型jmp_buf,儲存調用環境的宏int setjmp(jmp_buf env);,恢複調用環境函數void longjmp(jmp_buf env,int val);
用途饒過常規的函數調用和返回規則。
九、signal.h
同步訊號(一般為程式異常)和非同步訊號的處理(外部行為傳遞的訊號)。
定義了一個類型sig_atomic_t,定義了兩個函數和一些宏:
void (*signal(int sig,void (*func) (int) )(int);
通過設定三種方式對訊號進行處理。
int raise(int sig);
把訊號sig發送給正在執行的程式。成功返回0,否則非0。
十、stdarg.h
可變參數列表。定義了一個類型va_list。
宏:
1、void va_start(va_list ap,paramN);
對ap進行初始化。
2、type va_arg(va_list ap,type);
3、void va_end(va_list ap);
十一、stddef.h 被放到了stdlib.h
定義了一些類型:
ptrdiff_t 兩個指標相減的有符號整數類型
size_t 用sizeof操作符的結果的不帶正負號的整數類型
wchar_t 整實值型別
宏:
NULL 展開為實現定義的null 指標常量。
offsetof(type,member_designator) 展開為一個size_t type指定結構起始位置,member_designator指定便宜量。

待續……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.