如何调用此函数(没有定义)?

Mic*_*bie 0 c++ declaration function

所以我试图抓住某人的代码(并且无法与他们联系),我不明白为什么他们这样做.他们像这样调用main中的函数:

LOG_AddFunction();
Run Code Online (Sandbox Code Playgroud)

此函数在头文件中定义,如下所示:

#define LOG_AddFunction()    LOG_Add(LOG_TYPE_NORMAL, "%s()", __FUNCTION__)
Run Code Online (Sandbox Code Playgroud)

然后LOG_Add在同一个头文件中定义:

extern int  LOG_Add(LOG_TYPE eType, const char *pcText, ...);
Run Code Online (Sandbox Code Playgroud)

似乎没有LOG_AddFunction函数的任何最终定义,我不明白为什么代码会调用它.有人可以对此有所了解吗?

Lig*_*ica 7

LOG_AddFunction不是一个功能.它是一个类似函数的.它唯一的"定义"正是你在问题中向我们展示的.

其目的是自动调用LOG_Addcallsite(__FUNCTION__)上函数的名称自动传递.无论何时编写LOG_AddFunction(),这些字符都会被预处理器自动替换(就像使用任何其他宏一样)LOG_Add(LOG_TYPE_NORMAL, "%s()", __FUNCTION__).

这样可以节省LOG_Add每次输入的全部内容; 而已.