2013-04-23 63 views
2

我提到兩個可靠來源的信息,都似乎有同樣的事情,不同的定義:是的getchar()和的putchar()函數或宏?

http://www.cplusplus.com/reference/clibr%E2%80%A6

http://www.ocf.berkeley.edu/~pad/tigcc/doc/html/stdio_fputchar.html

第一個源說putchar()是一個功能,是getchar(),但在第二個環節,它說putchar()是一個宏。我的書上說getchar()是一個宏。哪個是對的?

+1

實現定義! – 2013-04-23 09:26:34

回答

6

getcharputchar是函數,但可以另外被定義爲宏。無論它們是否取決於實施。關於標準庫函數(C99,[email protected])的C標準:

在頭文件中聲明的任何函數都可以額外實現爲頭文件中定義的函數式宏。

1

有關信息,在我的Mac「人的getchar」給出了這樣的:

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). 
+0

Mac OS版本10.8.3 – ElSinus 2013-04-23 09:37:59

0

這完全取決於它如何在你的編譯器實現的。