C標準ライブラリでは、1文字ストリーム出力関数 fputc と putc(char版)、fputwc と putwc(wchar_t版)の2種類が提供される。両関数は機能的に等価。
マクロ展開によるトラブル回避のためputc/putwc利用は避け、常にfputc/fputwcを用いること。
putc()は、streamを一度以上評価するマクロとして実装されているかも知れないという点を除き、fputc()と同じである。
Man page of PUTS
putwc()関数あるいはマクロは、fputwc()と全く同じ動作をする。この関数はマクロとして実装されるかもしれないので、引き数が複数回評価されるかもしれない。この関数を使う理由はもはや存在しない。
Man page of FPUTWC
C99(N1256) 7.19.7.8/p2, 7.24.3.8/p2より引用。
The
putc
function is equivalent tofputc
, except that if it is implemented as a macro, it may evaluatestream
more than once, so that argument should never be an expression with side effects.
The
putwc
function is equivalent tofputwc
, except that if it is implemented as a macro, it may evaluatestream
more than once, so that argument should never be an expression with side effects.