I referred to two reliable sources for the information and both seems to have different definitions of the same thing:
http://www.cplusplus.com/reference/clibr%E2%80%A6
http://www.ocf.berkeley.edu/~pad/tigcc/doc/html/stdio_fputchar.html
The first source says putchar()
is a function, as is getchar()
, but in the second link it says putchar()
is a macro. My book says getchar()
is a macro. Which is correct?
getchar
and putchar
are functions, but may additionally be defined as macros. Whether they are or not depends on the implementation. The C standard says regarding standard library functions (C99, 7.1.4@1):
Any function declared in a header may be additionally implemented as a function-like macro defined in the header.