f
は、C標準ライブラリ関数の名前で何を表していますか?多くの関数の名前にf
が含まれていることに気づきましたが、これは私にはあまり意味がありません。
例:fgets
、fopen
、printf
、scanf
、sqrtf
など。
あなたの質問は一般的にあまりにも一般的ですが、私はいくつかの例を説明することができます。
fgets
、 fopen
、 fclose
、…—「f」は「ファイル」を表します。これらの関数は、POSIX関数のようにファイル番号ではなく、FILE *
ポインターを受け入れるか返します。printf
、 scanf
、…—「f」は「フォーマット済み」を表します。これらの関数はフォーマット文字列を受け入れます。fprintf
、 fscanf
—これは上記の2つの組み合わせです。sinf
、 cosf
、…—「f」はfloat
を表します(double
の選択肢と区別するため)。これは、1.5f
のように、浮動小数点リテラルの末尾にf
を付けると非常にうまく適合することに注意してください。free
、 floor
または setbuf
(“ set buffer 」)ここで、「f」は単に自然言語の文字として表示されます。引数のタイプを示す単一文字で名前の前または接尾辞を付けるという伝統は、オーバーロードのおかげでC++では廃止されたCでは必要です。実際、C++でのオーバーロードは、コンパイラが name mangling と呼ばれるプロセスによって、生成されたシンボルに内部でこれらのサフィックスを自動的に追加することによって機能します。
先頭のfは、関数が動作するタイプを示します。
fgets
:gets
だけでなく、FILE *
ハンドルでstdin
を使用しますfopen
:ファイルを開き、それをFILE *
として返します(元のopen
が行うファイル記述子の代わりに)末尾のfは、フォーマット文字列を使用することを意味します。
printf
:フォーマット指定子に従って出力しますscanf
:形式に従って読み込みます組み合わせると、次のようなものが得られます。
fprintf
:フォーマット指定子に従って特定のFILE *
に出力しますmath.h
関数のようなものを考えるとき、末尾のfは、特定の関数が次のようにタイプfloat
のオペランドで動作することを示します。
powf
:float
sの指数を取りますpowl
:long double
sの指数を取りますfgets
とfopen
の場合、f
はファイルを表すという印象を受けます。
printf
とscanf
の場合、f
はフォーマット済みを表すと思います。これは、少なくとも部分的に scanfに関するウィキペディアの記事 によってサポートされています。
stdio
ライブラリの関数では、f
、fread
、fprintf
などの前のfwrite
は 'ファイルを表します。 '。 f
やprintf
などの関数の最後にあるscanf
は、「フォーマット」を表します。したがって、printfはFORMATTED印刷です。つまり、%d
と%s
のようなものを使用できます。
数学関数では、f
の接尾辞は通常float
を意味します。