- ベストアンサー
FILE構造体がどのように定義されているか
こんにちは。 C言語初心者です。 今、FILE構造体について学んでいるのですが、stdioでFALE構造体が どの用に定義されているか調べなさい、という問題がありました。 それは、どのように調べればいいのでしょうか。 また、どのように定義されているのでようか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まず、FILE型は構造体であるとは限りません。規格上は、オブジェクト型であることだけが要求されています。 次に、<stdio.h>はファイルであるとは限りません。<stdio.h>をインクルードしたときに、必要な宣言・定義が行われればそれでよいからです。 さらに、FILE型自体はオブジェクト型であれば何でもよいので、例えばvoid*やintでもよいのです。そして、実際の中身はユーザーからは見えないところで定義されていることがあります。この場合、FILE型の定義内容(void*とかintとか)を調べればよいのでしょうか? あるいは、実際の内容まで踏み込む必要があるのでしょうか? 処理系を特定していないので、あくまでも一般論としての話ですよね?
その他の回答 (2)
- asuncion
- ベストアンサー率33% (2127/6289)
> 今、FILE構造体について学んでいるのですが、stdioでFALE構造体が > どの用に定義されているか調べなさい、という問題がありました。 そういうことをプログラマーが知らなくてもいいようになっている、 というのが利点だと思っていたのですが、そうでもないのかな? まあ、ヘッダーファイルの中身がどういう風になっているかを調べるのは、 悪くはないのかもしれないですけれど。
お礼
遅くなりまして、申し訳ございません。 回答ありがとうございました。 中身を調べました。
- trajaa
- ベストアンサー率22% (2662/11921)
>stdioでFALE構造体がどの用に定義されているか調べなさい。 推測すると、「stdio.h」というヘッダファイルにFILE構造体は定義されている。 その構造体定義箇所を見つけて、どの様な構造体メンバがあり それぞれはどの様なデータ型なのか? と言ったことを調べなさい。 と言うことなのだろうか? ホントの初心者向けの課題なのね。 stdio.hファイルがどこに存在するかをまず調べる 次にそのファイルを開き、FILE構造体がどこで定義されているか調べる 以下それなりに調べれば良いんでしょう? どこにあるか?とか そこまで教えて貰わないと駄目ですか?
お礼
遅くなり、申し訳ございません。 回答ありがとうございました。 <stdio.h>の定義の中から見つけて、回答する問題でした。
お礼
遅くなり、申し訳ございませんでした。 定義内容を調べればいい話だったみたいです。 説明、ありがとうございました。