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

时间:2015-07-31 18:56:52

标签: c++ function declaration

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

LOG_AddFunction();

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

#define LOG_AddFunction()    LOG_Add(LOG_TYPE_NORMAL, "%s()", __FUNCTION__)

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

extern int  LOG_Add(LOG_TYPE eType, const char *pcText, ...);

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

1 个答案:

答案 0 :(得分:7)

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

其目的是自动调用LOG_Add,并在呼叫站点(__FUNCTION__)自动传递函数的名称。无论何时编写LOG_AddFunction(),这些字符都会被预处理器(与任何其他宏一样)自动替换为LOG_Add(LOG_TYPE_NORMAL, "%s()", __FUNCTION__)

这样可以节省每次输入LOG_Add个电话的费用;仅此而已。