我不明白为什么 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 把流放在前面支持可变参数,但为什么 fputs 系列不保持一致性 ???
最佳答案
因为这些东西是几十年前写的,所以一般来说这只是历史学家感兴趣的问题:-)
这可能只是一个设计决定(或缺乏决定)导致他们变成这样,并且由于 ISO 重视向后兼容性,他们从未改变它。
可能是先编写了puts
,然后在编写fputs
时,开发人员只是简单地剪切'n'粘贴它,将新参数附加到最后。即使 printf/fprintf
存在相同的情况,由于需要将可变参数列表放在末尾,这也是不可能的。
但是,撇开假设不谈,既然我们心爱的丹尼斯走了,我们可能永远不会知道真正的原因..
关于c - 为什么 fputs 和 fprintf 反转流顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27956340/