[過去ログ] C言語なら俺に聞け 162 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
160(6): (ワッチョイ 65d3-WD8q) 2023/12/05(火)07:30 ID:72+QzLj/0(1/2) AAS
c言語初心者です
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
161: (ワッチョイ eaad-snvD) 2023/12/05(火)07:53 ID:kkEdYaZP0(1) AAS
>>160
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
162: (スフッ Sd0a-Oc+E) 2023/12/05(火)08:16 ID:64vzQPx0d(1) AAS
>>160 FILE構造体っていうことだけは、どの本にも書いてある。
164: (スッップ Sd0a-Cw2Y) 2023/12/05(火)08:33 ID:GHHZLCc/d(1/2) AAS
>>160
確かに構造体の中身を使わないかぎり何のポインタでもいいんだけど
間違えて他のタイプへのポインタと混同した時にエラーが出るから気づきやすい
それはけっこう重要だよ
165(2): (ワッチョイ 65d3-WD8q) 2023/12/05(火)09:00 ID:72+QzLj/0(2/2) AAS
>>160です
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
170: (アウアウウー Sa21-wVFe) 2023/12/05(火)15:39 ID:QJai9ytva(1) AAS
>>160
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
177: (ワッチョイ 65a4-WD8q) 2023/12/06(水)08:34 ID:hjosWl9s0(1) AAS
>>160です
皆さん大変参考になりました
今日はよく眠れそうです
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.195s*