Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我不明白为什么 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,由于需要将变量参数列表放在末尾,这也是不可能的。
puts
fputs
printf/fprintf
但是,抛开假设不谈,既然我们心爱的丹尼斯走了,我们可能永远不会知道真正的原因。