今日、私は C の標準 I/O について学んでいます。stdio.h ファイルを開くと、次のことがわかりました。
typedef struct _iobuf FILE;
構造体 _iobuf の定義を確認すると、次のことがわかりました。
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
より理解を深めるために、それぞれの禁止事項について、正しいかどうかを説明しました。
struct _iobuf {
char *_ptr; /* next character position */
int _cnt; /* characters left */
char *_base; /* location of buffer */
int _flag; /* File status flags */
int _file;
int _charbuf; /*Data transfer buffer */
int _bufsiz; /* Buffer size */
char *_tmpfname; /* Temporary file indicator */
};
今、私の心に2つの質問がありますか?
Q1: I/O で正しい名前とどのように構造が役立つかを提供しましたか? 何かを追加または削除するとどうなりますか? それはそれに応じて機能しますか?ここで提供される順序は重要ですか?
Q2: ここではポインタは使用されていませんが、ファイルを開くために FILE * を使用するのはなぜですか?