質問

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.

他のヒント

For information, on my mac 'man getchar' gives this:

 The fgetc() function obtains the next input character (if present) from the stream pointed at by stream, or the
 next character pushed back on the stream via ungetc(3).

 The getc() function acts essentially identically to fgetc(), but is a macro that expands in-line.

 The getchar() function is equivalent to getc(stdin).

It's entirely dependent how it's implemented in your compiler.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top