为什么fputs和fprintf反向流顺序

时间:2015-01-15 03:25:11

标签: c printf fputs

我不明白为什么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系列不保持一致性 ???

1 个答案:

答案 0 :(得分:6)

因为这些东西是几十年前写的,所以它通常只是历史学家感兴趣的问题: - )

可能只是一个设计决策(或缺乏决策)导致他们这样做,并且,由于ISO值向后兼容性,他们从未改变它。

可能是首先编写的puts,当编写fputs时,开发人员只是简单地将其粘贴,将新参数添加到最后。即使printf/fprintf存在相同的情况,由于需要将变量参数列表放在最后,因此无法实现。

但是,除了假设,现在我们心爱的丹尼斯已经离开,我们可能永远不会知道实际的原因。