簡介 locale.h 頭文件定義了特定地域的設置,比如日期格式和貨幣符號。接下來我們將介紹一些巨集,以及一個重要的結構 struct lconv 和兩個重要的函數。 庫巨集 下麵列出了頭文件 locale.h 中定義的巨集,這些巨集將在下列的兩個函數中使用: | 序號 | 巨集 & 描述 | | : | : ...
<locale.h>
簡介
locale.h 頭文件定義了特定地域的設置,比如日期格式和貨幣符號。接下來我們將介紹一些巨集,以及一個重要的結構 struct lconv 和兩個重要的函數。
庫巨集
下麵列出了頭文件 locale.h 中定義的巨集,這些巨集將在下列的兩個函數中使用:
序號 | 巨集 & 描述 |
---|---|
1 | LC_ALL 設置下麵的所有選項。 |
2 | LC_COLLATE 影響 strcoll 和 strxfrm 函數。 |
3 | LC_CTYPE 影響所有字元函數。 |
4 | LC_MONETARY 影響 localeconv 函數提供的貨幣信息。 |
5 | LC_NUMERIC 影響 localeconv 函數提供的小數點格式化和信息。 |
6 | LC_TIME 影響 strftime 函數。 |
庫函數
下麵列出了頭文件 locale.h 中定義的函數:
序號 | 函數 & 描述 |
---|---|
1 | char setlocale(int category, const char locale) 設置或讀取地域化信息。 |
2 | struct lconv *localeconv(void) 設置或讀取地域化信息。 |
庫結構
typedef struct {
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
} lconv
以下是各欄位的描述:
序號 | 欄位 & 描述 |
---|---|
1 | decimal_point 用於非貨幣值的小數點字元。 |
2 | thousands_sep 用於非貨幣值的千位分隔符。 |
3 | grouping 一個表示非貨幣量中每組數字大小的字元串。每個字元代表一個整數值,每個整數指定當前組的位數。值為 0 意味著前一個值將應用於剩餘的分組。 |
4 | int_curr_symbol 國際貨幣符號使用的字元串。前三個字元是由 ISO 4217:1987 指定的,第四個字元用於分隔貨幣符號和貨幣量。 |
5 | currency_symbol 用於貨幣的本地符號。 |
6 | mon_decimal_point 用於貨幣值的小數點字元。 |
7 | mon_thousands_sep 用於貨幣值的千位分隔符。 |
8 | mon_grouping 一個表示貨幣值中每組數字大小的字元串。每個字元代表一個整數值,每個整數指定當前組的位數。值為 0 意味著前一個值將應用於剩餘的分組。 |
9 | positive_sign 用於正貨幣值的字元。 |
10 | negative_sign 用於負貨幣值的字元。 |
11 | int_frac_digits 國際貨幣值中小數點後要顯示的位數。 |
12 | frac_digits 貨幣值中小數點後要顯示的位數。 |
13 | p_cs_precedes 如果等於 1,則 currency_symbol 出現在正貨幣值之前。如果等於 0,則 currency_symbol 出現在正貨幣值之後。 |
14 | p_sep_by_space 如果等於 1,則 currency_symbol 和正貨幣值之間使用空格分隔。如果等於 0,則 currency_symbol 和正貨幣值之間不使用空格分隔。 |
15 | n_cs_precedes 如果等於 1,則 currency_symbol 出現在負貨幣值之前。如果等於 0,則 currency_symbol 出現在負貨幣值之後。 |
16 | n_sep_by_space 如果等於 1,則 currency_symbol 和負貨幣值之間使用空格分隔。如果等於 0,則 currency_symbol 和負貨幣值之間不使用空格分隔。 |
17 | p_sign_posn 表示正貨幣值中正號的位置。 |
18 | n_sign_posn 表示負貨幣值中負號的位置。 |
下麵的值用於 p_sign_posn 和 n_sign_posn:
值 | 描述 |
---|---|
0 | 封裝值和 currency_symbol 的括弧。 |
1 | 放置在值和 currency_symbol 之前的符號。 |
2 | 放置在值和 currency_symbol 之後的符號。 |
3 | 緊挨著放置在值和 currency_symbol 之前的符號。 |
4 | 緊挨著放置在值和 currency_symbol 之後的符號。 |
<math.h>
簡介
math.h 頭文件定義了各種數學函數和一個巨集。在這個庫中所有可用的功能都帶有一個 double 類型的參數,且都返回 double 類型的結果。
庫巨集
下麵是這個庫中定義的唯一的一個巨集:
序號 | 巨集 & 描述 |
---|---|
1 | HUGE_VAL 當函數的結果不可以表示為浮點數時。如果是因為結果的幅度太大以致於無法表示,則函數會設置 errno 為 ERANGE 來表示範圍錯誤,並返回一個由巨集 HUGE_VAL 或者它的否定(- HUGE_VAL)命名的一個特定的很大的值。如果結果的幅度太小,則會返回零值。在這種情況下,error 可能會被設置為 ERANGE,也有可能不會被設置為 ERANGE。 |
庫函數
下麵列出了頭文件 math.h 中定義的函數:
序號 | 函數 & 描述 |
---|---|
1 | double acos(double x) 返回以弧度表示的 x 的反餘弦。 |
2 | double asin(double x) 返回以弧度表示的 x 的反正弦。 |
3 | double atan(double x) 返回以弧度表示的 x 的反正切。 |
4 | double atan2(double y, double x) 返回以弧度表示的 y/x 的反正切。y 和 x 的值的符號決定了正確的象限。 |
5 | double cos(double x) 返回弧度角 x 的餘弦。 |
6 | double cosh(double x) 返回 x 的雙曲餘弦。 |
7 | double sin(double x) 返回弧度角 x 的正弦。 |
8 | double sinh(double x) 返回 x 的雙曲正弦。 |
9 | double tanh(double x) 返回 x 的雙曲正切。 |
10 | double exp(double x) 返回 e 的 x 次冪的值。 |
11 | double frexp(double x, int *exponent) 把浮點數 x 分解成尾數和指數。返回值是尾數,並將指數存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。 |
12 | double ldexp(double x, int exponent) 返回 x 乘以 2 的 exponent 次冪。 |
13 | double log(double x) 返回 x 的自然對數(基數為 e 的對數)。 |
14 | double log10(double x) 返回 x 的常用對數(基數為 10 的對數)。 |
15 | double modf(double x, double *integer) 返回值為小數部分(小數點後的部分),並設置 integer 為整數部分。 |
16 | double pow(double x, double y) 返回 x 的 y 次冪。 |
17 | double sqrt(double x) 返回 x 的平方根。 |
18 | double ceil(double x) 返回大於或等於 x 的最小的整數值。 |
19 | double fabs(double x) 返回 x 的絕對值。 |
20 | double floor(double x) 返回小於或等於 x 的最大的整數值。 |
21 | double fmod(double x, double y) 返回 x 除以 y 的餘數。 |
<setjmp.h>
簡介
setjmp.h 頭文件定義了巨集 setjmp()、函數 longjmp() 和變數類型 jmp_buf,該變數類型會繞過正常的函數調用和返回規則。
庫變數
下麵列出了頭文件 setjmp.h 中定義的變數:
序號 | 變數 & 描述 |
---|---|
1 | jmp_buf 這是一個用於存儲巨集 setjmp() 和函數 longjmp() 相關信息的數組類型。 |
庫巨集
下麵是這個庫中定義的唯一的一個巨集:
序號 | 巨集 & 描述 |
---|---|
1 | int setjmp(jmp_buf environment) 這個巨集把當前環境保存在變數 environment 中,以便函數 longjmp() 後續使用。如果這個巨集直接從巨集調用中返回,則它會返回零,但是如果它從 longjmp() 函數調用中返回,則它會返回一個非零值。 |
庫函數
下麵是頭文件 setjmp.h 中定義的唯一的一個函數:
序號 | 函數 & 描述 |
---|---|
1 | void longjmp(jmp_buf environment, int value) 該函數恢復最近一次調用 setjmp() 巨集時保存的環境,jmp_buf 參數的設置是由之前調用 setjmp() 生成的。 |
<signal.h>
簡介
signal.h 頭文件定義了一個變數類型 sig_atomic_t、兩個函數調用和一些巨集來處理程式執行期間報告的不同信號。
庫變數
下麵是頭文件 signal.h 中定義的變數類型:
序號 | 變數 & 描述 |
---|---|
1 | sig_atomic_t 這是 int 類型,在信號處理程式中作為變數使用。它是一個對象的整數類型,該對象可以作為一個原子實體訪問,即使存在非同步信號時,該對象可以作為一個原子實體訪問。 |
庫巨集
下麵是頭文件 signal.h 中定義的巨集,這些巨集將在下列兩個函數中使用。SIG_ 巨集與 signal 函數一起使用來定義信號的功能。
序號 | 巨集 & 描述 |
---|---|
1 | SIG_DFL 預設的信號處理程式。 |
2 | SIG_ERR 表示一個信號錯誤。 |
3 | SIG_IGN 忽視信號。 |
SIG 巨集用於表示以下各種條件的信號碼:
序號 | 巨集 & 描述 |
---|---|
1 | SIGABRT 程式異常終止。 |
2 | SIGFPE 算術運算出錯,如除數為 0 或溢出。 |
3 | SIGILL 非法函數映象,如非法指令。 |
4 | SIGINT 中斷信號,如 ctrl-C。 |
5 | SIGSEGV 非法訪問存儲器,如訪問不存在的記憶體單元。 |
6 | SIGTERM 發送給本程式的終止請求信號。 |
庫函數
下麵是頭文件 signal.h 中定義的函數:
序號 | 函數 & 描述 |
---|---|
1 | void (signal(int sig, void (func)(int)))(int) 該函數設置一個函數來處理信號,即信號處理程式。 |
2 | int raise(int sig) 該函數會促使生成信號 sig。sig 參數與 SIG 巨集相容。 |
<stdarg.h>
簡介
stdarg.h 頭文件定義了一個變數類型 va_list 和三個巨集,這三個巨集可用於在參數個數未知(即參數個數可變)時獲取函數中的參數。
可變參數的函數通在參數列表的末尾是使用省略號(,...)定義的。
庫變數
下麵是頭文件 stdarg.h 中定義的變數類型:
序號 | 變數 & 描述 |
---|---|
1 | va_list 這是一個適用於 va_start()、va_arg() 和 va_end() 這三個巨集存儲信息的類型。 |
庫巨集
下麵是頭文件 stdarg.h 中定義的巨集:
序號 | 巨集 & 描述 |
---|---|
1 | void va_start(va_list ap, last_arg) 這個巨集初始化 ap 變數,它與 va_arg 和 va_end 巨集是一起使用的。last_arg 是最後一個傳遞給函數的已知的固定參數,即省略號之前的參數。 |
2 | type va_arg(va_list ap, type) 這個巨集檢索函數參數列表中類型為 type 的下一個參數。 |
3 | void va_end(va_list ap) 這個巨集允許使用了 va_start 巨集的帶有可變參數的函數返回。如果在從函數返回之前沒有調用 va_end,則結果為未定義。 |
<stddef.h>
簡介
stddef .h 頭文件定義了各種變數類型和巨集。這些定義中的大部分也出現在其它頭文件中。
庫變數
下麵是頭文件 stddef.h 中定義的變數類型:
序號 | 變數 & 描述 |
---|---|
1 | ptrdiff_t 這是有符號整數類型,它是兩個指針相減的結果。 |
2 | size_t 這是無符號整數類型,它是 sizeof 關鍵字的結果。 |
3 | wchar_t 這是一個寬字元常量大小的整數類型。 |
庫巨集
下麵是頭文件 stddef.h 中定義的巨集:
序號 | 巨集 & 描述 |
---|---|
1 | NULL 這個巨集是一個空指針常量的值。 |
2 | offsetof(type, member-designator) 這會生成一個類型為 size_t 的整型常量,它是一個結構成員相對於結構開頭的位元組偏移量。成員是由 member-designator 給定的,結構的名稱是在 type 中給定的。 |
參考自:https://www.runoob.com/cprogramming/c-tutorial.html