C言語では、他の言語とでは「命令」として持つような入出力や文字列操作などの機能を標準ライブラリとして提供しています。そのため、C言語を学ぶことは、どの様なライブラリ関数があるのか？、ライブラリ関数がどのヘッダーで宣言されているのか？、を覚えることが多くなります。
また、標準ライブラリで定義されている、型やマクロも同様に重要です。
C言語の規格 ISO/IEC 9899:2011（通称C11）の§7. ''Library'' §7.1 ''Introduction'' §7.1.1 ''Definitions of terms'' に用語定義が有り短いので引用/和訳しました。
文字列( ''string'' )とは、最初のヌル文字で終わり、それを含む連続した文字の並びのことです。
マルチバイト文字列(  ''multibyte string'' )という用語は、文字列に含まれるマルチバイト文字に対する特別な処理を強調したり、ワイド文字列との混同を避けるために使われることがあります。
文字列へのポインタ( ''A pointer to a string'' )は、その最初の（アドレスが最も低い）文字へのポインタです。
文字列の長さ( The length of a string  )は、NULL文字の前のバイト数であり、文字列の値は、含まれる文字の値を順に並べたものです。
文字列の値( ''the value of a string'' )は、含まれる文字の値を順番に並べたものです。
小数点の文字( ''The decimal-point character'' )とは、浮動小数点数を文字列に変換する関数が、その文字列の小数部分の先頭を示すために使用する文字です。
本文中および例題ではピリオドで表現されているが，setlocale関数で変更可能です（編註: ヨーロッパの多くの国では小数点に '.' ではなく ',' が使われ、3桁ごとの区切りに '.' が使われます）。
ヌルワイド文字( A null wide character )とは、コード値がゼロのワイド文字のことです。
ワイド文字列( ''A wide string'' )とは、最初のヌルワイド文字で終了し、それを含むワイド文字の連続したシーケンスである。
ワイド文字列へのポインタ( ''A pointer to a wide string'' )は、その最初の（アドレスが最も低い）ワイド文字へのポインタです。
ワイド文字列の長さ( ''The length of a wide string'' )は、ヌルワイド文字の前にあるワイド文字の数です。
ワイド文字列の値( ''The value of a wide string'' )は、含まれるワイド文字のコード値を順番に並べたものです。
シフトシーケンス( ''shift sequence'' )とは、マルチバイト文字列の中で、シフトの状態を変化させる（可能性のある）連続したバイト列のことです。シフトシーケンスには、対応するワイド文字があってはならない。
その代わりに、隣接するマルチバイト文字の補助的な役割を果たすものとする。
本節では、"''white-space character''"（空白文字？white-space character及びwhite-space wide characterは名前に反して改行の制御コードを含むので、空白文字の訳を充てることを躊躇した。） という表現は、isspaceで定義された(実行)white-space characterを指す。
また、"''white-space wide character''"（ワイド空白文字？） という表現は、iswspaceで定義された（実行）white-space wide characterを指す。
C11以降では標準ライブラリの機能の一部の実装が任意になりました。
例えば、処理系が  で宣言される複素数機能をサポートしない場合、マクロ __STDC_''NO''_COMPLEX__ が 1 に定義されます。
また特定のヘッダーファイルとは結びつきませんが、可変長配列機能をサポートしない場合は、マクロ __STDC_''NO''_VLA__ が 1 に定義されます。
Unix系のOSでは、complex.h, math.h, ieeefp.h, tgmath.h で定義された関数の定義は、暗黙でリンクされる libc ではなく追加で libm に実装されているので、 libm を -lm で追加リンクする必要があります。
% cat test-libm.c
int main(void){
    printf("sin(PI/2) = %f\n", sin(3.1415926536/2));
}
% cc test-libm.c -o test-libm
ld: error: undefined symbol: sin
>>> referenced by test-libm.c
>>>               /var/tmp/test-libm-d56553.o:(main)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
% cc test-libm.c -o test-libm -lm
% ./test-libm
sin(PI/2) = 1.000000
C11以降では新しく境界検査インターフェース（ ''Bounds-checking interfaces'' ）が提供され、マクロ __STDC_WANT_LIB_EXT1__ によって制御するようになりました。
__STDC_WANT_LIB_EXT1__は利用者が定義するもので、境界検査インターフェースを宣言している標準ヘッダーファイルをインクルードする前に定義を行います。
__STDC_WANT_LIB_EXT1__を 1 に定義すると境界検査インターフェースの使用を求め、0 に定義すると境界検査インターフェースの使用を求めない意味になります。
ANSI C 以降では未定義のマクロの値は 0 とみなされる未定義マクロが 0 とみなされるC言語の使用はは、ミススペル（典型的には _ の数の間違え）で本体は 1 なマクロが 0 とみなされる発見困難なバグに繋がります。clang や gcc であればコマンドラインから -Wundef を指定することで未定義マクロの参照を警告させることが出来ます（-Wallでは、-Wundefが有効にならないことに注意してください）。ので、__STDC_WANT_LIB_EXT1__を定義していない従来のソースコードは「境界検査インターフェースの使用を求めない」と解されます。
__STDC_WANT_LIB_EXT1__の使用例
int main(void) {
  char buf[16];
  puts("Please enter some string.");
  gets_s(buf, sizeof(buf));
  puts(buf);
}
上の例では、gets_s() が境界検査インターフェースを提供する関数です。
{{コラム|__STDC_WANT_IEC_60559_EXT__|
C23では、ユーザー定義マクロ __STDC_WANT_IEC_60559_EXT__ と処理系定義マクロ __STDC_IEC_60559_DFP__ などによってISO/IEC 60559:2020(IEEE 754として知られる浮動小数点算術に関する標準)の機能の要求を制御する予定です。
C11以降ではサポートされていない場合は処理系により、__STDC_NO_COMPLEX__ が 1 に定義されます。
C11以降ではサポートされていない場合は処理系により、__STDC_NO_ATOMICS__ が 1 に定義されます。
C11以降ではサポートされていない場合は処理系により、__STDC_NO_THREADS__ が 1 に定義されます。
C言語#C言語/標準ライブラリ以下のページに書く、関数などのテンプレートに関数のテンプレート案があります。
C17 の Annex B (informative) Library summary から、関数定義部分を抜き出しました。各関数は解説ページへのリンクになっています。
Diagnostics 
Complex 
Character handling 
Errors 
Floating-point environment 
Characteristics of floating types 
Format conversion of integer types 
Alternative spellings 
Sizes of integer types 
Localization 
Mathematics 
Nonlocal jumps 
Signal handling 
Alignment 
Variable arguments 
Atomics 
Boolean type and values 
Common definitions 
Integer types 
Input/output 
General utilities 
_Noreturn 
String handling 
Type-generic math 
Threads 
Date and time 
Unicode utilities 
Extended multibyte/wide character utilities 
Wide character classification and mapping utilities