電子書籍の厳選無料作品が豊富!

こんにちは。

C言語初心者です。

今、FILE構造体について学んでいるのですが、stdioでFALE構造体が
どの用に定義されているか調べなさい、という問題がありました。

それは、どのように調べればいいのでしょうか。

また、どのように定義されているのでようか。

A 回答 (3件)

まず、FILE型は構造体であるとは限りません。

規格上は、オブジェクト型であることだけが要求されています。

次に、<stdio.h>はファイルであるとは限りません。<stdio.h>をインクルードしたときに、必要な宣言・定義が行われればそれでよいからです。

さらに、FILE型自体はオブジェクト型であれば何でもよいので、例えばvoid*やintでもよいのです。そして、実際の中身はユーザーからは見えないところで定義されていることがあります。この場合、FILE型の定義内容(void*とかintとか)を調べればよいのでしょうか? あるいは、実際の内容まで踏み込む必要があるのでしょうか?

処理系を特定していないので、あくまでも一般論としての話ですよね?
    • good
    • 0
この回答へのお礼

遅くなり、申し訳ございませんでした。

定義内容を調べればいい話だったみたいです。
説明、ありがとうございました。

お礼日時:2008/09/19 11:24

> 今、FILE構造体について学んでいるのですが、stdioでFALE構造体が


> どの用に定義されているか調べなさい、という問題がありました。

そういうことをプログラマーが知らなくてもいいようになっている、
というのが利点だと思っていたのですが、そうでもないのかな?

まあ、ヘッダーファイルの中身がどういう風になっているかを調べるのは、
悪くはないのかもしれないですけれど。
    • good
    • 0
この回答へのお礼

遅くなりまして、申し訳ございません。

回答ありがとうございました。

中身を調べました。

お礼日時:2008/09/19 11:26

>stdioでFALE構造体がどの用に定義されているか調べなさい。



推測すると、「stdio.h」というヘッダファイルにFILE構造体は定義されている。
その構造体定義箇所を見つけて、どの様な構造体メンバがあり
それぞれはどの様なデータ型なのか?
と言ったことを調べなさい。
と言うことなのだろうか?

ホントの初心者向けの課題なのね。

stdio.hファイルがどこに存在するかをまず調べる
次にそのファイルを開き、FILE構造体がどこで定義されているか調べる
以下それなりに調べれば良いんでしょう?

どこにあるか?とか
そこまで教えて貰わないと駄目ですか?
    • good
    • 0
この回答へのお礼

遅くなり、申し訳ございません。

回答ありがとうございました。
<stdio.h>の定義の中から見つけて、回答する問題でした。

お礼日時:2008/09/19 11:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!