9

fputs と fprintf がストリームの順序を逆にする理由がわかりません。

int fputs (const char * str, FILE * stream);
int fprintf (FILE * stream, const char * format, ...);
ssize_t write(int fd, const void *buf, size_t count);

可変引数をサポートするために fprintf put stream を先に進めることは知っていましたが、なぜ fputs シリーズは一貫性を保たないのですか ???

4

1 に答える 1

6

これらは何十年も前に書かれたものなので、一般的には歴史家の関心事にすぎません :-)

それはおそらく、設計上の決定 (または決定の欠如) が原因で、ISO は下位互換性を重視しているため、決して変更していません。

それは最初に書かれたものかもしれませんが、puts書く時が来たときfputs、開発者は単純にそれをカットアンドペーストし、新しいパラメータを最後に追加しました。に同じ状況が存在したとしてもprintf/fprintf、可変引数リストが最後にある必要があるため、それは不可能でした。

しかし、仮定はさておき、私たちの最愛のデニスがいなくなった今、私たちは実際の理由を知ることは決してないかもしれません..

于 2015-01-15T03:29:27.420 に答える