- C 標準庫
- C 庫 - 首頁
- C 庫 - <assert.h>
- C 庫 - <complex.h>
- C 庫 - <ctype.h>
- C 庫 - <errno.h>
- C 庫 - <fenv.h>
- C 庫 - <float.h>
- C 庫 - <inttypes.h>
- C 庫 - <iso646.h>
- C 庫 - <limits.h>
- C 庫 - <locale.h>
- C 庫 - <math.h>
- C 庫 - <setjmp.h>
- C 庫 - <signal.h>
- C 庫 - <stdalign.h>
- C 庫 - <stdarg.h>
- C 庫 - <stdbool.h>
- C 庫 - <stddef.h>
- C 庫 - <stdio.h>
- C 庫 - <stdlib.h>
- C 庫 - <string.h>
- C 庫 - <tgmath.h>
- C 庫 - <time.h>
- C 庫 - <wctype.h>
- C 標準庫資源
- C 庫 - 快速指南
- C 庫 - 有用資源
- C 庫 - 討論
- C 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
C 標準庫 - 快速指南
C 庫 - <assert.h>
C 標準庫的assert.h標頭檔案提供了一個名為assert的宏,可用於驗證程式做出的假設,並在該假設為假時列印診斷訊息。
定義的宏assert引用了另一個宏NDEBUG,該宏不屬於<assert.h>。如果在包含<assert.h>的位置,在原始檔中將NDEBUG定義為宏名稱,則assert宏定義如下:
#define assert(ignore) ((void)0)
庫宏
以下是標頭檔案assert.h中定義的唯一函式:
| 序號 | 函式及描述 |
|---|---|
| 1 |
void assert(int expression)
這實際上是一個宏,而不是函式,可用於在C程式中新增診斷資訊。 |
C 庫 - <ctype.h>
C 標準庫的ctype.h標頭檔案聲明瞭幾個用於測試和對映字元的有用函式。
所有函式都接受int作為引數,其值必須為EOF或可表示為無符號字元。
如果引數c滿足所述條件,則所有函式都返回非零值(true),否則返回零(false)。
庫函式
以下是標頭檔案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 ispunct(int c)
此函式檢查傳遞的字元是否為標點符號字元。 |
| 9 |
int isspace(int c)
此函式檢查傳遞的字元是否為空格字元。 |
| 10 |
int isupper(int c)
此函式檢查傳遞的字元是否為大寫字母。 |
| 11 |
int isxdigit(int c)
此函式檢查傳遞的字元是否為十六進位制數字。 |
該庫還包含兩個轉換函式,它們接受並返回“int”。
| 序號 | 函式及描述 |
|---|---|
| 1 |
int tolower(int c)
此函式將大寫字母轉換為小寫字母。 |
| 2 |
int toupper(int c)
此函式將小寫字母轉換為大寫字母。 |
字元類
| 序號 | 字元類及描述 |
|---|---|
| 1 |
數字 這是一組整數 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }。 |
| 2 |
十六進位制數字 這是一組 { 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f }。 |
| 3 |
小寫字母 這是一組小寫字母 { a b c d e f g h i j k l m n o p q r s t u v w x y z }。 |
| 4 |
大寫字母 這是一組大寫字母 {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }。 |
| 5 |
字母 這是一組小寫和大寫字母。 |
| 6 |
字母數字字元 這是一組數字、小寫字母和大寫字母。 |
| 7 |
標點符號字元 這是一組 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
| 8 |
圖形字元 這是一組字母數字字元和標點符號字元。 |
| 9 |
空格字元 這是一組製表符、換行符、垂直製表符、換頁符、回車符和空格。 |
| 10 |
可列印字元 這是一組字母數字字元、標點符號字元和空格字元。 |
| 11 |
控制字元 在ASCII中,這些字元的八進位制程式碼為000到037,以及177(DEL)。 |
| 12 |
空白字元 這些是空格和製表符。 |
| 13 |
字母字元 這是一組小寫字母和大寫字母。 |
C 庫 - <errno.h>
C 標準庫的errno.h標頭檔案定義了整數變數errno,該變數由系統呼叫和某些庫函式在發生錯誤時設定,以指示發生了什麼錯誤。此宏擴充套件為型別為int的可修改左值,因此程式可以讀取和修改它。
errno在程式啟動時設定為零。標準C庫的某些函式將其值修改為非零,以指示某些型別的錯誤。您也可以根據需要修改其值或將其重置為零。
errno.h標頭檔案還定義了一個指示不同錯誤程式碼的宏列表,這些宏將擴充套件為型別為int的整數常量表達式。
庫宏
以下是標頭檔案errno.h中定義的宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
extern int errno
這是由系統呼叫和某些庫函式在發生錯誤時設定的宏,以指示發生了什麼錯誤。 |
| 2 |
EDOM 域錯誤
此宏表示域錯誤,如果輸入引數超出數學函式定義的域,則會發生此錯誤,並且errno設定為EDOM。 |
| 3 |
ERANGE 範圍錯誤
此宏表示範圍錯誤,如果輸入引數超出數學函式定義的範圍,則會發生此錯誤,並且errno設定為ERANGE。 |
C 庫 - <float.h>
C 標準庫的float.h標頭檔案包含一組與浮點值相關的各種平臺相關的常量。這些常量由ANSI C提出。它們允許建立更可移植的程式。在檢查所有常量之前,最好了解浮點數由以下四個元素組成:
| 序號 | 元件及元件描述 |
|---|---|
| 1 |
S 符號(+/-) |
| 2 |
b 指數表示的基數或基數,二進位制為2,十進位制為10,十六進位制為16,依此類推... |
| 3 |
e 指數,介於最小emin和最大emax之間的整數。 |
| 4 |
p 精度,有效數字中基數b的位數。 |
基於以上4個元件,浮點數的值如下:
floating-point = ( S ) p x be or floating-point = (+/-) precision x baseexponent
庫宏
以下值是特定於實現的,並使用#define指令定義,但這些值可能不會低於此處給出的值。請注意,在所有情況下,FLT指的是型別float,DBL指的是double,而LDBL指的是long double。
| 序號 | 宏及描述 |
|---|---|
| 1 | FLT_ROUNDS 定義浮點加法的舍入模式,它可以具有以下任何值:
|
| 2 | FLT_RADIX 2 這定義了指數的基數表示。基數2為二進位制,基數10為正常的十進位制表示,基數16為十六進位制。 |
| 3 | FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG 這些宏定義了數字中的位數(以FLT_RADIX為基數)。 |
| 4 | FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 這些宏定義了在舍入後無需更改即可表示的最大十進位制數字(基數10)數。 |
| 5 | FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP 這些宏定義了以FLT_RADIX為基數的指數的最小負整數。 |
| 6 | FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 這些宏定義了以10為基數的指數的最小負整數。 |
| 7 | FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP 這些宏定義了以FLT_RADIX為基數的指數的最大整數。 |
| 8 | FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 這些宏定義了以10為基數的指數的最大整數。 |
| 9 | FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 這些宏定義了最大有限浮點值。 |
| 10 | FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 這些宏定義了可表示的最小有效數字。 |
| 11 | FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 這些宏定義了最小浮點值。 |
示例
以下示例顯示了float.h檔案中定義的一些常量的用法。
即時演示#include <stdio.h>
#include <float.h>
int main () {
printf("The maximum value of float = %.10e\n", FLT_MAX);
printf("The minimum value of float = %.10e\n", FLT_MIN);
printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}
讓我們編譯並執行上述程式,它將產生以下結果:
The maximum value of float = 3.4028234664e+38 The minimum value of float = 1.1754943508e-38 The number of digits in the number = 7.2996655210e-312
C 庫 - <limits.h>
limits.h標頭檔案確定各種變數型別的各種屬性。此標頭檔案中定義的宏限制了各種變數型別的值,例如char、int和long。
這些限制指定變數不能儲存超出這些限制的任何值,例如,無符號字元最多可以儲存255的最大值。
庫宏
以下值是特定於實現的,並使用#define指令定義,但這些值可能不會低於此處給出的值。
| 宏 | 值 | 描述 |
|---|---|---|
| CHAR_BIT | 8 | 定義一個位元組中的位數。 |
| SCHAR_MIN | -128 | 定義有符號char的最小值。 |
| SCHAR_MAX | +127 | 定義有符號char的最大值。 |
| UCHAR_MAX | 255 | 定義無符號char的最大值。 |
| CHAR_MIN | -128 | 定義字元型別char的最小值,如果char表示負值,則其值將等於SCHAR_MIN,否則為零。 |
| CHAR_MAX | +127 | 定義字元型別char的值,如果char表示負值,則其值將等於SCHAR_MAX,否則為UCHAR_MAX。 |
| MB_LEN_MAX | 16 | 定義多位元組字元中的最大位元組數。 |
| SHRT_MIN | -32768 | 定義短整型short int的最小值。 |
| SHRT_MAX | +32767 | 定義短整型short int的最大值。 |
| USHRT_MAX | 65535 | 定義無符號短整型unsigned short int的最大值。 |
| INT_MIN | -2147483648 | 定義整型int的最小值。 |
| INT_MAX | +2147483647 | 定義整型int的最大值。 |
| UINT_MAX | 4294967295 | 定義無符號整型unsigned int的最大值。 |
| LONG_MIN | -9223372036854775808 | 定義長整型long int的最小值。 |
| LONG_MAX | +9223372036854775807 | 定義長整型long int的最大值。 |
| ULONG_MAX | 18446744073709551615 | 定義無符號長整型unsigned long int的最大值。 |
示例
以下示例顯示了在limits.h檔案中定義的一些常量的用法。
即時演示#include <stdio.h>
#include <limits.h>
int main() {
printf("The number of bits in a byte %d\n", CHAR_BIT);
printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);
printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);
printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);
printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);
printf("The maximum value of SHORT INT = %d\n", SHRT_MAX);
printf("The minimum value of INT = %d\n", INT_MIN);
printf("The maximum value of INT = %d\n", INT_MAX);
printf("The minimum value of CHAR = %d\n", CHAR_MIN);
printf("The maximum value of CHAR = %d\n", CHAR_MAX);
printf("The minimum value of LONG = %ld\n", LONG_MIN);
printf("The maximum value of LONG = %ld\n", LONG_MAX);
return(0);
}
讓我們編譯並執行上述程式,它將產生以下結果:
The maximum value of UNSIGNED CHAR = 255 The minimum value of SHORT INT = -32768 The maximum value of SHORT INT = 32767 The minimum value of INT = -2147483648 The maximum value of INT = 2147483647 The minimum value of CHAR = -128 The maximum value of CHAR = 127 The minimum value of LONG = -9223372036854775808 The maximum value of LONG = 9223372036854775807
C 庫 - <locale.h>
locale.h標頭檔案定義了特定於位置的設定,例如日期格式和貨幣符號。您會發現定義了幾個宏以及一個重要的結構struct lconv和下面列出的兩個重要函式。
庫宏
以下是標頭檔案中定義的宏,這些宏將在下面列出的兩個函式中使用:
| 序號 | 宏及描述 |
|---|---|
| 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,則貨幣符號出現在正貨幣值之前。如果等於0,則貨幣符號出現在正貨幣值之後。 |
| 14 |
p_sep_by_space 如果等於1,則貨幣符號與正貨幣值之間用空格分隔。如果等於0,則貨幣符號與正貨幣值之間沒有空格。 |
| 15 |
n_cs_precedes 如果等於1,則貨幣符號出現在負貨幣值之前。如果等於0,則貨幣符號出現在負貨幣值之後。 |
| 16 |
n_sep_by_space 如果等於1,則貨幣符號與負貨幣值之間用空格分隔。如果等於0,則貨幣符號與負貨幣值之間沒有空格。 |
| 17 |
p_sign_posn 表示正貨幣值中正號的位置。 |
| 18 |
n_sign_posn 表示負貨幣值中負號的位置。 |
以下值用於p_sign_posn和n_sign_posn:
| 值 | 描述 |
|---|---|
| 0 | 括號包含值和貨幣符號。 |
| 1 | 符號出現在值和貨幣符號之前。 |
| 2 | 符號出現在值和貨幣符號之後。 |
| 3 | 符號緊接在值和貨幣符號之前。 |
| 4 | 符號緊接在值和貨幣符號之後。 |
C 庫 - <math.h>
math.h標頭檔案定義了各種數學函式和一個宏。此庫中提供的全部函式都將double作為引數並返回double作為結果。
庫宏
此庫中只定義了一個宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
HUGE_VAL 如果函式的結果可能無法表示為浮點數,則使用此宏。如果正確結果的大小太大而無法表示,則函式將errno設定為ERANGE以指示範圍錯誤,並返回一個特定的、非常大的值,該值由宏HUGE_VAL或其負值(-HUGE_VAL)命名。 如果結果的大小太小,則返回零值。在這種情況下,errno可能會或可能不會設定為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的反正切值(以弧度為單位),以確定正確的象限。 |
| 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)
返回值為尾數,exponent指向的整數為指數。結果值為x = 尾數 * 2 ^ 指數。 |
| 12 |
double ldexp(double x, int exponent)
返回x乘以2的指數次冪。 |
| 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的餘數。 |
C 庫 - <setjmp.h>
setjmp.h標頭檔案定義了宏setjmp()、一個函式longjmp()和一個變數型別jmp_buf,用於繞過正常的函式呼叫和返回機制。
庫變數
以下是標頭檔案setjmp.h中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 |
jmp_buf 這是一種陣列型別,用於儲存宏setjmp()和函式longjmp()的資訊。 |
庫宏
此庫中只定義了一個宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
int setjmp(jmp_buf environment)
此宏將當前的environment儲存到變數environment中,以便以後由函式longjmp()使用。如果此宏直接從宏呼叫返回,則返回零,但如果它從longjmp()函式呼叫返回,則返回非零值。 |
庫函式
以下是標頭檔案setjmp.h中定義的唯一一個函式:
| 序號 | 函式及描述 |
|---|---|
| 1 |
void longjmp(jmp_buf environment, int value)
此函式恢復由程式相同呼叫中最近一次呼叫setjmp()宏時儲存的環境,並使用相應的jmp_buf引數。 |
C 庫 - <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 浮點錯誤,例如除以零。 |
| 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宏相容。 |
C 庫 - <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,則結果未定義。 |
C 庫 - <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 中給出。 |
C 庫 - <stdio.h>
stdio.h 標頭檔案定義了三個變數型別、幾個宏和各種用於執行輸入和輸出的函式。
庫變數
以下是 stdio.h 標頭檔案中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 |
size_t 這是一個無符號整數型別,是sizeof 關鍵字的結果。 |
| 2 |
FILE 這是一種適合儲存檔案流資訊的類物件型別。 |
| 3 |
fpos_t 這是一種適合儲存檔案中的任何位置的類物件型別。 |
庫宏
以下是 stdio.h 標頭檔案中定義的宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
NULL 此宏是空指標常量的值。 |
| 2 |
_IOFBF、_IOLBF 和 _IONBF 這些宏展開為具有不同值的整型常量表達式,適合用作setvbuf 函式的第三個引數。 |
| 3 |
BUFSIZ 此宏是一個整數,表示setbuf 函式使用的緩衝區大小。 |
| 4 |
EOF 此宏是一個負整數,表示已到達檔案末尾。 |
| 5 |
FOPEN_MAX 此宏是一個整數,表示系統可以保證同時開啟的檔案的最大數量。 |
| 6 |
FILENAME_MAX 此宏是一個整數,表示適合儲存最長可能的檔名字元陣列的最長長度。如果實現沒有施加限制,則此值應為建議的最大值。 |
| 7 |
L_tmpnam 此宏是一個整數,表示適合儲存tmpnam 函式建立的最長可能的臨時檔名字元陣列的最長長度。 |
| 8 |
SEEK_CUR、SEEK_END 和 SEEK_SET 這些宏用於fseek 函式,以定位檔案中的不同位置。 |
| 9 |
TMP_MAX 此宏是tmpnam 函式可以生成的唯一檔名的最大數量。 |
| 10 |
stderr、stdin 和 stdout 這些宏是指向 FILE 型別的指標,分別對應於標準錯誤、標準輸入和標準輸出流。 |
庫函式
以下是 stdio.h 標頭檔案中定義的函式:
C 庫 - <stdlib.h>
stdlib.h 標頭檔案定義了四個變數型別、幾個宏和各種用於執行通用功能的函式。
庫變數
以下是 stdlib.h 標頭檔案中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 |
size_t 這是一個無符號整數型別,是sizeof 關鍵字的結果。 |
| 2 |
wchar_t 這是一個整數型別,大小與寬字元常量相同。 |
| 3 |
div_t 這是div 函式返回的結構。 |
| 4 |
ldiv_t 這是ldiv 函式返回的結構。 |
庫宏
以下是 stdlib.h 標頭檔案中定義的宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
NULL 此宏是空指標常量的值。 |
| 2 |
EXIT_FAILURE 這是 exit 函式在失敗時返回的值。 |
| 3 |
EXIT_SUCCESS 這是 exit 函式在成功時返回的值。 |
| 4 |
RAND_MAX 此宏是 rand 函式返回的最大值。 |
| 5 |
MB_CUR_MAX 此宏是多位元組字元集中位元組的最大數量,不能大於 MB_LEN_MAX。 |
庫函式
以下是 stlib.h 標頭檔案中定義的函式:
C 庫 - <string.h>
string.h標頭檔案定義了一種變數型別、一個宏和各種用於操作字元陣列的函式。
庫變數
以下是string.h標頭檔案中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 |
size_t 這是一個無符號整數型別,是sizeof 關鍵字的結果。 |
庫宏
以下是string.h標頭檔案中定義的宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
NULL 此宏是空指標常量的值。 |
庫函式
以下是string.h標頭檔案中定義的函式:
C 庫 - <time.h>
time.h標頭檔案定義了四種變數型別、兩個宏和各種用於操作日期和時間的函式。
庫變數
以下是time.h標頭檔案中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 |
size_t 這是一個無符號整數型別,是sizeof 關鍵字的結果。 |
| 2 |
clock_t 這是一種適合儲存處理器時間的型別。 |
| 3 |
time_t是 這是一種適合儲存日曆時間的型別。 |
| 4 |
struct tm 這是一種用於儲存時間和日期的結構。 |
tm結構具有以下定義:
struct tm {
int tm_sec; /* seconds, range 0 to 59 */
int tm_min; /* minutes, range 0 to 59 */
int tm_hour; /* hours, range 0 to 23 */
int tm_mday; /* day of the month, range 1 to 31 */
int tm_mon; /* month, range 0 to 11 */
int tm_year; /* The number of years since 1900 */
int tm_wday; /* day of the week, range 0 to 6 */
int tm_yday; /* day in the year, range 0 to 365 */
int tm_isdst; /* daylight saving time */
};
庫宏
以下是time.h標頭檔案中定義的宏:
| 序號 | 宏及描述 |
|---|---|
| 1 |
NULL 此宏是空指標常量的值。 |
| 2 |
CLOCKS_PER_SEC 此宏表示每秒的處理器時鐘數。 |
庫函式
以下是time.h標頭檔案中定義的函式:
| 序號 | 函式及描述 |
|---|---|
| 1 |
char *asctime(const struct tm *timeptr)
返回一個指向字串的指標,該字串表示結構timeptr的日期和時間。 |
| 2 |
clock_t clock(void)
返回自實現定義的紀元(通常是程式的開始)開始以來使用的處理器時鐘時間。 |
| 3 |
char *ctime(const time_t *timer)
返回一個表示基於引數timer的本地時間的字串。 |
| 4 |
double difftime(time_t time1, time_t time2)
返回time1和time2(time1-time2)之間的秒差。 |
| 5 |
struct tm *gmtime(const time_t *timer)
timer的值被分解成tm結構,並以協調世界時(UTC)表示,也稱為格林威治標準時間(GMT)。 |
| 6 |
struct tm *localtime(const time_t *timer)
timer的值被分解成tm結構,並以本地時區表示。 |
| 7 |
time_t mktime(struct tm *timeptr)
根據本地時區將timeptr指向的結構轉換為time_t值。 |
| 8 |
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
根據format中定義的格式規則格式化結構timeptr中表示的時間,並將其儲存到str中。 |
| 9 |
time_t time(time_t *timer)
計算當前日曆時間並將其編碼為time_t格式。 |