C历史问题。为什么c函数putc需要第二个参数

putc( 'c', stdout ) ;

而放起来就方便多了
puts( "a string" ) ;

msvc中有一个函数++
putchar( 'c' ) ;

它的工作方式可能是putc预期的工作方式。我认为putc的第二个参数是能够将putc指向一个文件,但是有一个函数可以用于此。

最佳答案

int putc ( int character, FILE * stream );

将字符写入流并推进位置指示器。
所以它是一个比putchar
其他功能可以基于此,例如
#define putchar(c) putc((c),stdout)

根据kernighan的书,putcfputc是等价的,但是putc可以作为一个宏实现,putc可能需要多次评估它的流参数。
我已经阅读过,假设两者都存在向后兼容性,但不确定这是否有效。

09-18 09:30