我正在寻找 C 中 putc() 函数的宏实现。
我在 Ritchie 和 Kernighan 的“The C programming language”中找到的一个实现
#define putc(x,p) (--(p)->cnt >=0 \
?(unsigned char) *(p)->ptr++ :_flushbuf((x),p))
文件结构定义如下
typedef struct _iobuf {
int cnt;
char *ptr;
char *base;
int flag;
int fd;
}FILE;
当我们调用 putc 时,我看不到 cnt 是如何初始化的?
最佳答案
毫无疑问,它由 fopen
初始化,并由任何其他读取/写入文件的内容修改。
关于c - C中putc()的宏实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713944/