调用这个函数(没有定义)是如何工作的?

How does calling this function (without a definition) work?

所以我试图掌握某人的代码(但无法联系到他们),但我不明白他们为什么这样做。他们在 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 函数似乎没有任何最终定义,我不明白为什么代码会调用它。有人可以解释一下吗?

LOG_AddFunction 不是函数。它是一个类似函数的。它唯一的 "definition" 正是您在问题中向我们展示的内容。

它的目的是自动调用LOG_Add,调用处的函数名(__FUNCTION__)自动传递。每当您编写 LOG_AddFunction() 时,这些字符都会被预处理器自动替换为 LOG_Add(LOG_TYPE_NORMAL, "%s()", __FUNCTION__).

(就像任何其他宏一样)

这节省了每次输入整个 LOG_Add 电话;仅此而已。