C++ 课程-TINFO\u设置术语是如何工作的?
我试图理解ncurses的工作原理,我们称之为C++ 课程-TINFO\u设置术语是如何工作的?,c++,c,gcc,ncurses,C++,C,Gcc,Ncurses,我试图理解ncurses的工作原理,我们称之为initscr(),用于ncurses到init屏幕 文件ncurses lib_initscr.c中定义的函数,并尝试通过newterm(即lib_newterm.c文件)打开terminal,它使用: if ( TINFO_SETUP_TERM(&new_term, name,fileno(_ofp), &errret, FALSE) != ERR) ){ } 当我打开咒语的时候,priv.h.as: #ifdef USE_TE
initscr()
,用于ncurses到init屏幕
文件ncurses lib_initscr.c中定义的函数,并尝试通过newterm(即lib_newterm.c文件)打开terminal,它使用:
if ( TINFO_SETUP_TERM(&new_term, name,fileno(_ofp), &errret, FALSE) != ERR) ){
}
当我打开咒语的时候,priv.h.as:
#ifdef USE_TERM_DRIVER
#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \
_nc_setupterm_ex(tpp, name, fd, err, reuse)
#else
#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \
_nc_setupterm(name, fd, err, reuse)
#endif
在lib_setup.c中,函数定义如下:
#ifdef USE_TERM_DRIVER
NCURSES_EXPORT(int) _nc_setupterm(
NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse){
}
#endif
我没有找到源代码中定义的函数
\u nc\u setupterm\u ex()
在哪里,以及如果没有定义使用\u TERM\u驱动程序
,它如何链接到\u nc\u setupterm()
TINFO\u SETUP\u TERM
在ncurses/TINFO/lib\u SETUP.c
(ncurses 5.9源代码中的第577行)中定义。显示的宏将函数名称设置为\u nc\u setupterm
或\u nc\u setupterm\u ex
如果定义了USE\u TERM\u DRIVER
,则TINFO\u SETUP\u TERM
被定义为\u nc\u setupterm\u ex
,\u nc\u setupterm
成为TINFO\u SETUP\u TERM
的包装器(即nc\u setupterm\u ex
)
如果未定义使用术语驱动程序,则将TINFO\u SETUP\u TERM定义为\u nc\u setupterm,并且不会编译您引用的\u nc\u setupterm`的定义