C history question here. Why does the C function putc
require a second parameter like
putc( 'c', stdout ) ;
While puts is oh so more convenient
puts( "a string" ) ;
There is a function in msvc++
putchar( 'c' ) ;
Which works the way one might expect putc
to work. I thought the second parameter of putc
was to be able to direct putc
to a file, but there is a function fputc
for that.
int putc ( int character, FILE * stream );
Writes a character to the stream and advances the position indicator.
So it is a more generic function than putchar
Other functions can be based on this e.g.
#define putchar(c) putc((c),stdout)
According to Kernighan's book putc
is equivalent with fputc
but putc
could be implemented as a macro and putc may have to evaluate its stream argument more than once.
I have read that supposedly that both exist for backward compatibility, but not sure if this is valid
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With