我不明白为什么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);
Run Code Online (Sandbox Code Playgroud)
我知道fprintf把stream放在前面以支持变量参数,但为什么fputs系列不保持一致性???
因为这些东西是几十年前写的,所以通常只是历史学家感兴趣的问题:-)
这可能只是一个设计决策(或缺乏决策)导致他们这样,并且,由于ISO值向后兼容,他们从未改变它.
它可能是puts首先编写的,当它写入时fputs,开发人员只需将其"删除",将新参数添加到最后.即使存在相同的情况printf/fprintf,由于需要将变量参数列表放在最后,这是不可能的.
但是,假设一边,既然我们心爱的丹尼斯已经走了,我们可能永远不会知道实际的原因.