(Translated by https://www.hiragana.jp/)
標準Cライブラリ - Wikipedia

標準ひょうじゅんCライブラリ

ANSI C標準ひょうじゅんとして定義ていぎされたC言語げんごのための標準ひょうじゅんライブラリで、マクロ・かた定義ていぎことなるタスクのための関数かんすう提供ていきょうするもの

標準ひょうじゅんCライブラリ(ひょうじゅんシーライブラリ)は、C言語げんご標準ひょうじゅん規格きかくさだめられた、かたマクロ関数かんすう集合しゅうごうからなるライブラリである。

C言語げんごは、PascalPL/1ひとし従来じゅうらいプログラミング言語げんごとはことなり、文字もじれつ操作そうさ入出力にゅうしゅつりょくとう基本きほんてき機能きのう内蔵ないぞうしていなかった。やがてC言語げんご利用りようしゃは、現在げんざい標準ひょうじゅんCライブラリの原型げんけいとなる概念がいねん実装じっそう共有きょうゆうするようになった。

C言語げんご普及ふきゅうともない、言語げんご仕様しようがそうであったように、ライブラリもまたおおくの方言ほうげんまれたが、1989ねん(ISO/IEC 9899:1990)にANSIによるC言語げんご標準ひょうじゅん規格きかく制定せいていされることで統一とういつはかられ、さらにはいくつかのあらたな概念がいねん導入どうにゅうされ、これが標準ひょうじゅんCライブラリとなった。

そのおこなわれた標準ひょうじゅん規格きかく改定かいていは、標準ひょうじゅんCライブラリへの機能きのう追加ついかおもであった。1995ねん(ISO/IEC 9899/AMD1:1995)には、しゅとしてワイド文字もじ操作そうさかんする関数かんすうぐん大幅おおはば追加ついかされた。また、1999ねん(ISO/IEC 9899:1999、C99)には、しゅとして複素数ふくそすう数学すうがくじょう演算えんざんかんする関数かんすうぐん大幅おおはば追加ついかされた。2011ねん(ISO/IEC 9899:2011、C11)には、アライメントマルチスレッドUnicode・メモリ境界きょうかいチェック関数かんすうなどが追加ついかになった。

おも機能きのう

編集へんしゅう

標準ひょうじゅんヘッダ

編集へんしゅう

C11 (ISO/IEC 9899:2011) では、標準ひょうじゅんヘッダとして以下いかのものをさだめている。

ISO/IEC 9899:2011(C11) のさだめる標準ひょうじゅんヘッダ一覧いちらん
ヘッダーファイル 初出しょしゅつ 概要がいよう
assert.h 診断しんだん機能きのう
complex.h C99 複素数ふくそすう計算けいさん
ctype.h 文字もじ操作そうさ
errno.h エラー
fenv.h C99 浮動ふどう小数点しょうすうてん環境かんきょう
float.h 浮動ふどう小数点しょうすうてんがた特性とくせい
inttypes.h C99 整数せいすうがた書式しょしき変換へんかん
iso646.h AMD1[1] 代替だいたいつづり(Alternate spellings)
limits.h 整数せいすうがたおおきさ
locale.h 文化ぶんかけん固有こゆう操作そうさ
math.h 数学すうがく
setjmp.h 局所きょくしょ分岐ぶんき
signal.h シグナル操作そうさ
stdalign.h C11 アライメント
stdarg.h 可変かへん個数こすうじつ引数ひきすう
stdatomic.h C11 アトミック操作そうさ
stdbool.h C99 論理ろんりがたおよび論理ろんり
stddef.h 共通きょうつう定義ていぎ
stdint.h C99 整数せいすうがた
stdio.h 入出力にゅうしゅつりょく
stdlib.h 一般いっぱんユーティリティ
stdnoreturn.h _Noreturn
string.h 文字もじれつ操作そうさ
tgmath.h C99 かた総称そうしょう数学すうがく関数かんすう(Type-generic math)
threads.h マルチスレッド
time.h 日付ひづけおよ時間じかん
uchar.h C11 Unicodeユーティリティ
wchar.h AMD1[1] バイトおよびワイド文字もじ拡張かくちょうユーティリティ
wctype.h AMD1[1] ワイド文字種もじしゅ分類ぶんるいおよびワイド文字もじ大文字おおもじ小文字こもじ変換へんかんユーティリティ

診断しんだん機能きのう assert.h

編集へんしゅう

ヘッダ assert.hインクルードされる時点じてんにおける NDEBUG マクロの定義ていぎ状態じょうたいにより、実行じっこう診断しんだん機能きのう有効ゆうこう無効むこうえることができる。

  • assertNDEBUG マクロが定義ていぎされていない場合ばあい実行じっこう診断しんだんおこなう。

C11で、翻訳ほんやく確定かくていするしき対象たいしょうにアサーションする static_assert追加ついかされた。

複素数ふくそすう complex.h

編集へんしゅう

複素数ふくそすう演算えんざん虚数きょすう単位たんい定義ていぎきょ分離ぶんり機能きのうなどがふくまれている。

文字もじ操作そうさ ctype.h

編集へんしゅう

文字種もじしゅべつ分類ぶんるい、および大文字おおもじ小文字こもじ変換へんかんおこな関数かんすう提供ていきょうする。 ctype.h ヘッダが提供ていきょうする文字もじ操作そうさ関数かんすうは、設定せっていされているロケールにおうじて動作どうさわる。

  • isalnum英数字えいすうじかどうかの判別はんべつ
  • isalpha英字えいじかどうかの判別はんべつ
  • isblank単語たんご区切くぎ文字もじかどうかの判定はんてい
  • iscntrl制御せいぎょ文字もじかどうかの判別はんべつ
  • isdigit数字すうじかどうかの判別はんべつ
  • isgraph空白くうはく(' ')をのぞ表示ひょうじ文字もじかどうかの判別はんべつ
  • islower小文字こもじかどうかの判別はんべつ
  • isprint表示ひょうじ文字もじかどうかの判別はんべつ
  • ispunct区切くぎ文字もじかどうかの判別はんべつ
  • isspace空白くうはくるい文字もじかどうかの判別はんべつ
  • isupper大文字おおもじかどうかの判別はんべつ
  • isxdigit — 16しん数字すうじかどうかの判別はんべつ
  • tolower小文字こもじへの変換へんかん
  • toupper大文字おおもじへの変換へんかん

エラー errno.h

編集へんしゅう

ライブラリ関数かんすうないでエラーが発生はっせいした場合ばあい、そのエラーの内容ないよう報告ほうこくするために使用しようするいくつかのマクロ定義ていぎ

  • errno — エラー番号ばんごう格納かくのうするintかた変数へんすう参照さんしょうするマクロ。マクロであるが、かけじょうintかた変更へんこう可能かのう左辺さへんしき展開てんかいされる[2]たとえば(*get_errno_address())のような左辺さへんしき展開てんかいされるかもしれない)。C11以降いこうでスレッドが標準ひょうじゅんされたことにともない、スレッドローカル記憶きおくいき期間きかん (thread local storage duration) をつことが規定きていされた[3]
  • EDOM定義ていぎいきエラー
  • ERANGE範囲はんいエラー
  • EILSEQバイト文字もじ不正ふせいなら

浮動ふどう小数点しょうすうてんがた特性とくせい float.h

編集へんしゅう

浮動ふどう小数点しょうすうてんがたおおきさや様々さまざま特性とくせいあらわすマクロの定義ていぎ

  • FLT_RADIX浮動ふどう小数点しょうすうてんがた内部ないぶ表現ひょうげん使用しようされる基数きすう
  • FLT_ROUNDS浮動ふどう小数点しょうすうてんがたまる方向ほうこう
  • FLT_MANT_DIGfloatかたFLT_RADIX基数きすうとした仮数かすう桁数けたすう
  • FLT_MAX_EXPfloat かたにおけるFLT_RADIX基数きすうとした指数しすう最大さいだい
  • FLT_MIN_EXPfloat かたにおけるFLT_RADIX基数きすうとした指数しすう最小さいしょう
  • FLT_MAX_10_EXPfloat かたにおける10基数きすうとした指数しすう最大さいだい
  • FLT_MIN_10_EXPfloat かたにおける10基数きすうとした指数しすう最小さいしょう
  • FLT_MAXfloat かた最大さいだい
  • FLT_MINfloat かたせい最小さいしょう整数せいすうがたとはちがfloatかた実数じっすう最小さいしょう-FLT_MAXである)
  • FLT_EPSILONfloatかた表現ひょうげん可能かのうな1よりおおきい最小さいしょう1との計算けいさんイプシロン
  • DBL_MANT_DIGdouble かたFLT_RADIX基数きすうとした仮数かすう桁数けたすう
  • DBL_MAX_EXPdouble かたにおけるFLT_RADIX基数きすうとした指数しすう最大さいだい
  • DBL_MIN_EXPdoubleかたにおけるFLT_RADIX基数きすうとした指数しすう最小さいしょう
  • DBL_MAX_10_EXPdoubleかたにおける10基数きすうとした指数しすう最大さいだい
  • DBL_MIN_10_EXPdouble かたにおける10基数きすうとした指数しすう最小さいしょう
  • DBL_MAXdoubleかた最大さいだい
  • DBL_MINdoubleかたせい最小さいしょう整数せいすうがたとはちがdoubleかた実数じっすう最小さいしょう-DBL_MAXである)
  • DBL_EPSILONdouble かた表現ひょうげん可能かのうな1よりおおきい最小さいしょう1との
  • LDBL_MANT_DIGlong double かたFLT_RADIX基数きすうとした仮数かすう桁数けたすう
  • LDBL_MAX_EXPlong double かたにおける FLT_RADIX基数きすうとした指数しすう最大さいだい
  • LDBL_MIN_EXPlong double かたにおける FLT_RADIX基数きすうとした指数しすう最小さいしょう
  • LDBL_MAX_10_EXPlong double かたにおける10基数きすうとした指数しすう最大さいだい
  • LDBL_MIN_10_EXPlong double かたにおける10基数きすうとした指数しすう最小さいしょう
  • LDBL_MAXlong double かた最大さいだい
  • LDBL_MINlong double かた最小さいしょう
  • LDBL_EPSILONlong double かた表現ひょうげん可能かのうな1よりおおきい最小さいしょう1との

整数せいすうがたおおきさ limits.h

編集へんしゅう

整数せいすうがたおおきさをあらわすマクロの定義ていぎ

  • CHAR_BITcharかた構成こうせいする1バイトの[4]ビットかず>=8
  • MB_LEN_MAX処理しょりけいがサポートするマルチバイト文字もじ最大さいだいバイトすう
  • CHAR_MAXcharかた最大さいだいSCHAR_MAX または UCHAR_MAXおな
  • CHAR_MINcharかた最小さいしょうSCHAR_MIN または 0おな
  • SCHAR_MAXsigned char かた最大さいだい>=127
  • SCHAR_MINsigned char かた最小さいしょう<=-127
  • UCHAR_MAXunsigned char かた最大さいだい>=255
  • SHRT_MAXshortかた最大さいだい>=32767
  • SHRT_MINshortかた最小さいしょう<=-32767
  • USHRT_MAXunsigned shortかた最大さいだい>=65535
  • INT_MAXintかた最大さいだい>=32767
  • INT_MINintかた最小さいしょう<=-32767
  • UINT_MAXunsigned intかた最大さいだい>=65535
  • LONG_MAXlongかた最大さいだい>=2147483647
  • LONG_MINlongかた最小さいしょう<=-2147483647
  • ULONG_MAXunsigned longかた最大さいだい>=4294967295

文化ぶんかけん固有こゆう操作そうさ locale.h

編集へんしゅう

ロケールごとにことなる、文字もじコード数値すうち記述きじゅつする場合ばあい書式しょしきとう操作そうさおこなかた・マクロ・関数かんすう宣言せんげん定義ていぎ

  • struct lconv数値すうち記述きじゅつする場合ばあい書式しょしきかんする情報じょうほう格納かくのうする構造こうぞうたい
  • localeconv設定せっていされているロケールにおうじた格納かくのうした struct lconv参照さんしょう
  • setlocale現在げんざいのロケールを設定せってい

数学すうがく math.h

編集へんしゅう

数学すうがくてき演算えんざんおこなうための関数かんすう、および関連かんれんするマクロの宣言せんげん定義ていぎ

局所きょくしょ分岐ぶんき setjmp.h

編集へんしゅう

関数かんすう枠組わくぐみをえた分岐ぶんき(ジャンプ)を制御せいぎょするためのかた・マクロ・関数かんすう宣言せんげん定義ていぎ

  • jmp_bufsetjmp マクロが実行じっこう環境かんきょう保存ほぞんするためのかた
  • setjmplongjmp 関数かんすうによる復帰ふっき可能かのうにするために実行じっこう環境かんきょう保存ほぞんするためのマクロ(しばしば直接ちょくせつ関数かんすう実装じっそうされているが、標準ひょうじゅんではマクロとされている。POSIXではマクロか関数かんすうかは指定していされない、としている)
  • longjmpsetjmp マクロで保存ほぞんされた環境かんきょうへの復帰ふっき

シグナル操作そうさ signal.h

編集へんしゅう

シグナル処理しょり関数かんすう登録とうろくおよびシグナルの送信そうしんかんするマクロ・がた関数かんすう宣言せんげん定義ていぎ

  • sig_atomic_t代入だいにゅうおよび参照さんしょう分割ぶんかつ実行じっこうされる(アトミックオペレーションとなる)整数せいすうがた
  • raise — シグナルの送信そうしん
  • signal — シグナル処理しょり関数かんすう登録とうろく

可変かへん個数こすう引数ひきすう stdarg.h

編集へんしゅう

printf 関数かんすうのような可変長かへんちょう引数ひきすう関数かんすうにおけるじつ引数ひきすう操作そうさかんするかたとマクロの定義ていぎ

  • va_list可変かへんじつ引数ひきすうにアクセスするための情報じょうほう格納かくのうするかた
  • va_arg可変かへんじつ引数ひきすう
  • va_start可変かへんじつ引数ひきすう操作そうさ開始かいし
  • va_end可変かへんじつ引数ひきすう操作そうさ終了しゅうりょう

共通きょうつう定義ていぎ stddef.h

編集へんしゅう

処理しょりけい依存いぞんするかたとマクロの定義ていぎ

  • ptrdiff_t — ポインタ減算げんざん結果けっかかた符号ふごう整数せいすうがた
  • size_tsizeof 演算えんざん結果けっかかた符号ふごう整数せいすうがた。Unix けいなど、POSIX 1003.1-1996 API に準拠じゅんきょしている場合ばあいssize_t符号ふごうきのsize_t
  • wchar_t — ワイド文字もじがた。8ビット以上いじょう整数せいすうだが、コンパイラやプラットフォームによりおおきさは様々さまざまMicrosoft Windowsでは16ビット、Unixけいでは32ビットであることがおおい。
  • NULLそらポインタ定数ていすうマクロ
  • offsetof構造こうぞうたいメンバの先頭せんとうからのオフセットを

入出力にゅうしゅつりょく stdio.h

編集へんしゅう

ストリームおよびファイル操作そうさかんするかた・マクロ・関数かんすう宣言せんげん定義ていぎ

  • FILE — ストリームを制御せいぎょするためのオブジェクトがた構造こうぞうたいとはかぎらない)
  • fpos_t — ファイルのシーク位置いち格納かくのうするためのかた
  • clearerr — ファイル終端しゅうたん表示ひょうじおよびエラー表示ひょうじのクリア
  • fclose — ファイルのクローズ
  • feof — ファイル終端しゅうたん表示ひょうじ判定はんてい
  • ferror — エラー表示ひょうじ判定はんてい
  • fgetc — ストリームからの1文字もじ入力にゅうりょく
  • fgetpos — ストリームのファイル位置いち表示ひょうじ参照さんしょう
  • fgets — ストリームからの1ぎょう入力にゅうりょく
  • fopen — ファイルのオープン
  • fprintf — ストリームへの書式しょしき出力しゅつりょく
  • fputc — ストリームへの1文字もじ出力しゅつりょく
  • fputs — ストリームへの1ぎょう出力しゅつりょく
  • fread — ストリームからの
  • fscanf — ストリームからの書式しょしき入力にゅうりょく
  • fseek — ストリームのファイル位置いち表示ひょうじ変更へんこう
  • fsetpos — ストリームのファイル位置いち表示ひょうじ設定せってい
  • ftell — ストリームのファイル位置いち表示ひょうじ参照さんしょう
  • fwrite — ストリームへの
  • getc — ストリームからの1文字もじ入力にゅうりょく
  • getchar標準ひょうじゅん入力にゅうりょくからの1文字もじ入力にゅうりょく
  • gets標準ひょうじゅん入力にゅうりょくからの1ぎょう入力にゅうりょく(ただし、C11で削除さくじょされた)
  • perror標準ひょうじゅんエラー出力しゅつりょくへのエラーメッセージ出力しゅつりょく
  • printf標準ひょうじゅん出力しゅつりょくへの書式しょしき出力しゅつりょく
  • putc — ストリームへの1文字もじ出力しゅつりょく
  • putchar標準ひょうじゅん出力しゅつりょくへの1文字もじ出力しゅつりょく
  • puts標準ひょうじゅん出力しゅつりょくへの1ぎょう出力しゅつりょく
  • remove — ファイルの削除さくじょ
  • rename — ファイルめい変更へんこう
  • rewind — ストリームのもど
  • scanf標準ひょうじゅん入力にゅうりょくからの書式しょしき入力にゅうりょく
  • setbuf — ストリームのバッファ設定せってい
  • setvbuf — ストリームの詳細しょうさいなバッファ設定せってい
  • sprintf文字もじ配列はいれつへの書式しょしき出力しゅつりょく
  • sscanf文字もじれつからの書式しょしき入力にゅうりょく
  • tmpfile — テンポラリファイルをバイナリモードでオープン
  • tmpnam — テンポラリファイルめい生成せいせい
  • vprintf標準ひょうじゅん出力しゅつりょくへの書式しょしき出力しゅつりょくva_listはん
  • vscanf標準ひょうじゅん入力にゅうりょくからの書式しょしき入力にゅうりょくva_listはん

一般いっぱんユーティリティ stdlib.h

編集へんしゅう

一般いっぱんユーティリティかんするかた・マクロ・関数かんすう宣言せんげん定義ていぎ

  • div_tintかたしょう剰余じょうよ格納かくのうする構造こうぞうたい
  • ldiv_tlongかたしょう剰余じょうよ格納かくのうする構造こうぞうたい
  • MB_CUR_MAX設定せっていされているロケールにおけるマルチバイト文字もじ最大さいだいバイトすうあらわすマクロ
  • RAND_MAXrand関数かんすうかえ擬似ぎじ乱数らんすう最大さいだい
  • abort — プログラムの異常いじょう終了しゅうりょう
  • absintかた絶対ぜったい
  • aligned_alloc — アライメントされたメモリブロックのけ(C11で追加ついか
  • atexit終了しゅうりょう関数かんすう登録とうろく
  • at_quick_exit通常つうじょう終了しゅうりょう関数かんすう登録とうろく(C11で追加ついか
  • atof文字もじれつからdoubleかたへの変換へんかん
  • atoi文字もじれつからintかたへの変換へんかん
  • atol文字もじれつからlongかたへの変換へんかん
  • bsearchバイナリサーチ
  • callocメモリブロックけとクリア
  • divintかたどうしのしょう剰余じょうよ
  • exit[よう曖昧あいまい回避かいひ] — プログラムの終了しゅうりょう
  • free — メモリブロックの解放かいほう
  • getenv環境かんきょう変数へんすう参照さんしょう
  • labslongかた絶対ぜったい
  • ldivlongかたどうしのしょう剰余じょうよ
  • malloc — メモリブロックの
  • mblen — マルチバイト文字もじ構成こうせいバイトすう
  • mbstowcs — マルチバイト文字もじれつからワイド文字もじれつへの変換へんかん
  • mbtowc — マルチバイト文字もじからワイド文字もじへの変換へんかん
  • qsortクイックソート (ただし、仕様しようじょうはソートをおこなうとあるだけで「クイックソートによる」とはかれていない)
  • quick_exit通常つうじょうのプログラムの終了しゅうりょう(C11で追加ついか
  • rand擬似ぎじ乱数らんすう
  • realloc — メモリブロックのさい
  • srand乱数らんすうしゅ設定せってい
  • strtod文字もじれつからdoubleかたへの変換へんかん
  • strtol文字もじれつからlongかたへの変換へんかん基数きすう指定してい
  • strtoul文字もじれつからunsigned longかたへの変換へんかん基数きすう指定してい
  • system — コマンドプロセッサの
  • wcstombs — ワイド文字もじれつからマルチバイト文字もじれつへの変換へんかん
  • wctomb — ワイド文字もじれつからマルチバイト文字もじれつへの変換へんかん

文字もじれつ操作そうさ string.h

編集へんしゅう

文字もじれつ操作そうさかんするかた・マクロ・関数かんすう宣言せんげん定義ていぎ

  • memchr — メモリブロックちゅう文字もじ検索けんさく
  • memcmp — メモリブロックの比較ひかく
  • memcpy — メモリブロックのコピー
  • memmove — メモリブロックの転送てんそう
  • memset — メモリブロックを指定してい文字もじめる
  • strchr文字もじれつない文字もじ探索たんさく
  • strcat文字もじれつ連結れんけつ
  • strcmp文字もじれつ比較ひかく
  • strcpy文字もじれつのコピー
  • strcspn文字もじれつちゅう指定してい文字もじぐんふくまない先頭せんとう部分ぶぶんなが
  • strerror — エラー番号ばんごう対応たいおうしたエラーメッセージ文字もじれつ取得しゅとく
  • strcoll — ロケールにおうじた順序じゅんじょけによる文字もじれつ比較ひかく
  • strlen文字もじれつなが
  • strncat字数じすう制限せいげんきで文字もじれつ連結れんけつ
  • strncmp字数じすう制限せいげんきで文字もじれつ比較ひかく
  • strncpy字数じすう制限せいげんきで文字もじれつのコピー
  • strpbrk文字もじれつちゅう文字もじぐん探索たんさく
  • strrchr文字もじれつないぎゃく方向ほうこう文字もじ探索たんさく
  • strspn文字もじれつちゅう指定してい文字もじぐんふく先頭せんとう部分ぶぶんなが
  • strstr文字もじれつちゅう文字もじれつ探索たんさく
  • strtok文字もじれつからの字句じく
  • strxfrm — ロケールにおうじた順序じゅんじょけになるように文字もじれつ変換へんかん

かた総称そうしょう数学すうがく関数かんすう<tgmath.h>

編集へんしゅう

スレッド<threads.h>

編集へんしゅう

C11で追加ついか

日付ひづけおよ時間じかん time.h

編集へんしゅう

グレゴリオれきもとづく日付ひづけとうあつかうためのかた・マクロ・関数かんすう宣言せんげん定義ていぎ

  • clock_t — clock 関数かんすうかえかた
  • time_t時刻じこくあらわかた
  • struct tmれき時刻じこくかく要素ようそ年月としつき日時にちじ分秒ふんびょうとう)を格納かくのうする構造こうぞうたい
  • CLOCKS_PER_SECclock関数かんすうかえびょう単位たんい変換へんかんするための除数じょすうあらわすマクロ定数ていすう
  • asctimetm構造こうぞうたいから文字もじれつへの変換へんかん
  • clock処理しょりけい定義ていぎ開始かいしてん通例つうれいプログラム実行じっこう開始かいし)からの経過けいか時間じかん(プロセッサ時間じかんCPU使用しよう時間じかん)の取得しゅとく
  • ctimetime_tかたから文字もじれつへの変換へんかん
  • difftimetime_tかたどうしのびょう単位たんいでの
  • gmtime協定きょうてい世界せかい (UTC) の取得しゅとく
  • localtime地方ちほう時刻じこく取得しゅとく
  • mktimetm構造こうぞうたいから time_tかたへの変換へんかん
  • strftimetm構造こうぞうたいから文字もじれつへの書式しょしき変換へんかん
  • time現在げんざいこよみ時刻じこく (calendar time) の取得しゅとく

time_tは、とくUNIXよう実装じっそうはじめとしたおおくの実装じっそうにおいて、協定きょうてい世界せかい (UTC) 1970ねん1がつ1にち00ふん0びょうからの経過けいかびょうすう符号ふごうづけ32ビット整数せいすうがたあらわすようになっている。そのような実装じっそうでは2001ねん9がつ9にち問題もんだい2038ねん問題もんだいのような問題もんだいしょうじる。くわしくはかく問題もんだい記事きじ参照さんしょうされたい。

Unicodeユーティリティ<uchar.h>

編集へんしゅう

C11で追加ついか

バイト文字もじおよびワイド文字もじ拡張かくちょうユーティリティ<wchar.h>

編集へんしゅう

ワイド文字種もじしゅ分類ぶんるいおよびワイド文字もじ大文字おおもじ小文字こもじユーティリティ<wctype.h>

編集へんしゅう

フリースタンディング環境かんきょう

編集へんしゅう

フリースタンディング環境かんきょうでは、C89 では標準ひょうじゅんCライブラリのうち float.hlimits.hstdarg.hstddef.h対応たいおうしている。ISO/IEC 9899/AMD1:1995 ではくわえて iso646.h が、C99 ではさらstdbool.h および stdint.h対応たいおうしている。

Unixけい標準ひょうじゅんCライブラリ

編集へんしゅう

Unixけい関係かんけいするPOSIXSUSLinux Standard Baseなどの標準ひょうじゅん仕様しようでは、標準ひょうじゅんCライブラリを包含ほうがんし、さらに追加ついか関数かんすうやマクロ、かたなどが規定きていされている。

GNU/LinuxおおくのLinuxディストリビューション)では、一般いっぱんてきGNU Cライブラリ (glibc) が標準ひょうじゅんCライブラリの実装じっそうとしてもちいられている。BSD系列けいれつでの実装じっそうは、BSD libc呼称こしょうされる。

C++における標準ひょうじゅんCライブラリ

編集へんしゅう

C++03の標準ひょうじゅんC++ライブラリでは、C95相当そうとう標準ひょうじゅんCライブラリを包含ほうがんしている。さらには、C95では任意にんい実装じっそうであったfloatかたdoubleかた数学すうがく関数かんすうつねにサポートされる。C++11ではC99相当そうとう標準ひょうじゅんCライブラリと uchar.h包含ほうがんしている。

標準ひょうじゅんCライブラリにおけるヘッダ xxx.h は、C++では cxxx というヘッダにマッピングされる。かく識別子しきべつしstd 名前なまえ空間くうかんうち宣言せんげんされる。また、標準ひょうじゅんCライブラリとの互換ごかんせいたせるため、xxx.h 形式けいしきのヘッダも使用しようすることができ、std 名前なまえ空間くうかんない宣言せんげんされた識別子しきべつしusing指令しれいによってグローバル名前なまえ空間くうかんされる。

C++固有こゆう事情じじょうから、一部いちぶ関数かんすうについてはC言語げんごとの互換ごかんせい低下ていかしている。具体ぐたいてきにはmemchr関数かんすうstrstr関数かんすうとうがそれにあたる。すなわち、引数ひきすうとしてわたされるポインタがかたconst修飾しゅうしょくされているかかにより、返却へんきゃくかたもそれにわせて変更へんこうされるように多重たじゅう定義ていぎされている。

Cの場合ばあい

char *strchr(const char*, int);

C++の場合ばあい

const char *strchr(const char*, int);
char *strchr(char*, int);

脚註きゃくちゅう

編集へんしゅう
  1. ^ a b c ISO/IEC 9899/AMD1:1995
  2. ^ ISO/IEC 9899:1999 TC3 | WG14/N1256, Committee Draft | Septermber 7, 2007 | 7.5 Errors <errno.h>
  3. ^ ISO/IEC 9899:201x | WG14/N1548, Committee Draft | December 2, 2010 | 7.5 Errors <errno.h>
  4. ^ N2596 working draft — December 11, 2020 ISO/IEC 9899:202x (E). ISO/IEC JTC1/SC22/WG14. p. 20, §5.2.4.2.1 Characteristics of integer types <limits.h>. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf 

外部がいぶリンク

編集へんしゅう