2

私と同じように、初心者として、stdio.h などのヘッダー ファイルで getchar() のような関数を検索するのは非常に困難です。どういうわけか、ヘッダーファイルを調べて「物事がどのように機能するかを確認する」ときに恐れてはならない情報をどこかで拾いました。(C++ プライマー プラス、スティーブン プラタ)

私は、控えめに言っても、ヘッダー ファイルと一般的なプログラミングに非常に不慣れです。

getchar() を見つけようとしたときに、stdio.h がますます多くのヘッダーに分岐するだけで、getchar() を見つけるのがますます複雑になり、時間がかかることがわかりました。明らかに、私はこれについてすべて間違っています。私の意図は、私が使用している関数のソース コードを見つけることだけでした。

したがって、私の質問は次のとおりです。標準関数が「実際に」行っていることを真に「理解」するためのソースコードはどこにありますか?

4

5 に答える 5

3

変数の順序の宣言やその他の使用上の注意を探している場合は、オンライン リファレンスまたはを使用してくださいman


実際のコードを探している場合は、GNU のlibcなどの C 標準ライブラリの実装を調べてください。

ただし、実装は単純ではなく、依存関係のグラフは広範囲に及ぶことに注意してください。彼らはまた、私たちのほとんどが慣れ親しんでいるよりも低いレベルでマシンと対話する傾向があります.

getcharの libc の実装を考えてみましょう:

int
getchar ()
{
  int result;
  _IO_acquire_lock (_IO_stdin);
  result = _IO_getc_unlocked (_IO_stdin);
  _IO_release_lock (_IO_stdin);
  return result;
} 

おそらくあなたが期待していたものではありません:)。

(注: C の参照がどれほど優れているかはわかりません。これは、私が通常 C++ で使用するものです。)

于 2012-11-12T19:38:59.623 に答える
2

ヘッダー ファイルを検索するのではなく、man ページまたはMSDNヘルプを使用する必要があります。

于 2012-11-12T19:34:20.617 に答える
1

C 標準では、標準ヘッダー ファイル ( などstdio.h) が物理的に存在する必要はありません。それらは組み込みにすることができます。

関数のパラメーターまたは戻り値がわからない場合は、C 標準または man ページを読んでください。

于 2012-11-12T19:34:39.553 に答える
0

C ヘッダー ファイルでは、関数を事前に宣言するために使用 (インクルード) されます。事前に宣言されている関数は、実装が別の (またはそれについては同じ) .c ファイルにある独自の関数、または既にコンパイルされたライブラリのいずれかです。stdio.h は最後の例です。

関数宣言を見つけるためにヘッダー ファイルを調べる必要はありません。Google で「man」と入力してみてください

乾杯

于 2012-11-12T19:37:59.133 に答える
0

これは、実行可能ファイル explorer.exe を変更して、Windows で簡単なアクションを実行するようなものです。これらは基本ファイルです。そのままにして、機能をファイルに直接記述します。また、ファイルの検索と変更が問題になる場合は、IDE を使用していることを確認し、メモ帳やそのような別のプログラムを使用して手動で操作しようとしないでください。

于 2012-11-12T19:38:34.083 に答える