本文介绍了在C近拍实现putc将()的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在寻找的宏实现putc将(c)中的功能。

I was looking for the macro implementation of putc() function in C.

一个实现我在C编程语言发现由Ritchie和Kernighan的

One implementation which i found in "The C programming language" by Ritchie and Kernighan

#define putc(x,p) (--(p)->cnt >=0 \
                  ?(unsigned char) *(p)->ptr++ :_flushbuf((x),p))

文件结构的定义如下:

The file structure definition is as follows

typedef struct _iobuf {
                int cnt;
                char *ptr;
                char *base;
                int flag;
                int fd;
             }FILE;

我看不到CNT被初始化如何当我们调用putc将?

I am unable to see how cnt gets initialised when we call putc ?

推荐答案

它无疑是的fopen 初始化,并由其他任何读取/文件写入修改。

It's undoubtedly initialized by fopen, and modified by anything else that reads/writes the file.

这篇关于在C近拍实现putc将()的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 11:32