c/c++语言开发共享C语言中putc()的宏实现

我在C中寻找putc()函数的宏实现。

我在Ritchie和Kernighan的“C编程语言”中找到的一个实现

#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初始化,并由读取/写入文件的任何其他内容修改。

    它已在代码中初始化:来自K&R

     //the stdin stdout,stderr are reserved in first 3 location of_iob[]: FILE _iob[OPEN_MAX]={ {0,(char*)0,(char*)0,_READ,0}, //stdin read with buffered {0,(char*)0,(char*)0,_WRITE,1}, //stdout write with buffered {0,(char*)0,(char*)0,_WRITE|_UNBUF,2}, //stderr write without buffered }; 

      以上就是c/c++开发分享C语言中putc()的宏实现相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549432.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐