本文主要是介绍getchar()函数的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
准备工作:
struct _iobuf {char *_ptr;int _cnt;char *_base;int _flag;int _file;int _charbuf;int _bufsiz;char *_tmpfname;
};
typedef struct _iobuf FILE;_CRTIMP extern FILE _iob[];
//可见 _iob[]是FILE结构体的实例具体理解:
#define getchar() getc(stdin)
#define stdin (&_iob[0])//此中的_iob[0]是上面提到的FILE实例中的一个,被操作系统已经初始化好了,用来操作缓存的!#define getc(_stream) (--(_stream)->_cnt >= 0 \ ? 0xff & *(_stream)->_ptr++ : _filbuf(_stream))
// 反斜杠的含义是是连接下一行!!!!!这里实现了getchar()的具体实现
// 存在字符则此宏由此字符返回,不存在则调用_filbuf(&_iob[0])来输入字符到缓冲区,并再次执行getchar()操作.
getchar()函数的功能:执行getchar()时,当缓冲区有字符,则取第一个字符,当缓冲区没有字符,则让用户向缓冲区中输入(以enter或者eof结束),并取其中的第一个字
这篇关于getchar()函数的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!