6

我从书中阅读了这些概念,并在互联网上进行了很多搜索,但没有很好的定义和解释。到处都是这样写的putch()putchar()并且fputchar()以相同的方式工作并用于将字符打印到控制台,但我认为它们之间一定有一些不同?

4

3 回答 3

6

这个简单的手册页当然描述了差异,尽管很简洁:

  • fputc()将字符c, 转换为unsigned char, 写入流。
  • putc()等效于fputc()除了它可以实现为不止一次评估流的宏。
  • putchar(c)相当于putc(c, stdout)
于 2013-11-14T15:45:31.623 回答
1

这里

int fputc(int c, FILE *stream);

int putc(int c, FILE *stream);

int putchar(int c);

fputc() 函数将字符 c(转换为“无符号字符”)写入 stream 指向的输出流。

putc() 宏的作用与 fputc() 基本相同,但它是一个内联扩展的宏。它可能会多次评估流,因此提供给 putc() 的参数不应是具有潜在副作用的表达式。

putchar() 函数与具有 stdout 输出流的 putc() 相同。

于 2013-11-14T15:45:20.223 回答
0

putch来自标准库conio.h,在 Linux 上不受支持正如 wiki 所说,它不是由 C 标准定义的。

putchar来自stdio.h,您可以在 Linux 上毫无问题地使用它。

于 2013-11-14T15:49:21.237 回答