C++ 课程-TINFO\u设置术语是如何工作的?

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

我试图理解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_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`的定义