c - getchar() 和 putchar() 宏如何?

标签 c c-preprocessor getchar putchar

根据我对 C 中宏的理解,它们是预定义的常量,将在整个程序中使用它们的常量值,因此我们继续定义它们以避免进一步的复杂性并使代码更具可读性,因此人们阅读它会明白什么应该保持不变,什么不是。

我到处读过(《C 编程现代方法》,K.N King),我们可以将这两个函数定义为宏。

由于我对 C 有点陌生,所以我不知道如何将这两个定义为宏?

最佳答案

宏有两种类型:简单替换宏和类函数宏。

替换宏将符号的一个实例替换为另一个实例。例如:

#define LEN 10
char str[LEN];

经过预处理后,变成:

char str[10];

类似函数的宏可以采用可以插入到任何被替换的参数中:

#define MAX(a,b) ((a) > (b) ? (a) : (b))
int x = MAX(2,3);

预处理后:

int x = ((2) > (3) ? (2) : (3));

对于getcharputchar,它们可以定义如下:

#define getchar() getc(stdin)
#define putchar(c) putc(c, stdout)

关于c - getchar() 和 putchar() 宏如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760438/

相关文章:

c - C语言中如何计算文件中的空行数?

c - 大小为 8 的无效读/写

c-preprocessor - 覆盖 CPP 输出中的行标记文件名

C++ 预处理器 __VA_ARGS__ 参数数量

c - getchar() 用于从输入中排除字符

c - 如何使用 C 中的基本命令将数字转换为单词

c++ - 在可变参数宏中分配参数

c - putchar() vs printf() - 有区别吗?

c 编程 getchar 和 EOF 的含义是什么以及这段代码的作用我不明白

C 编程 - 如何删除文本文件中的尾随零