+ -
当前位置:首页 → 问答吧 → 这个getc宏是什么意思,我读不懂,求解释。。。

这个getc宏是什么意思,我读不懂,求解释。。。

时间:2011-12-07

来源:互联网

C/C++ code

#define getc(_stream)     (--(_stream)->_cnt >= 0 \
                ? 0xff & *(_stream)->_ptr++ : _filbuf(_stream))

作者: Angle_sean3   发布时间: 2011-12-07

如果stream中有数据,就直接读出,否者填充stream,再度出。

作者: w28050   发布时间: 2011-12-07

getc(_stream) =((--(_stream)->_cnt >= 0 ? 0xff & *(_stream)->_ptr++ : _filbuf(_stream));
? :运算符知道吧~~

作者: zhutou100hao   发布时间: 2011-12-07

不是的啊,我的疑问是 宏里面的_stream是一个宏参数,它的类型是未知的啊,怎么能确定它有_cnt或者_ptr而使用->_cnt和->_ptr呢? 就算通常是一个FILE*类型,我看FILE类型里面也没有_cnt和_ptr的啊?它是怎么从流里面读取一个字符的?

作者: Angle_sean3   发布时间: 2011-12-07