我可以获得指向当前函数的指针吗?

时间:2012-09-26 13:18:39

标签: c function pointers logging

是否可以获得指向当前函数的指针?如果是,我该怎么办?

动机:我有一个函数做一些日志记录,并且想调用

log(currentfunc, "blabla")

例如,有些输出。

3 个答案:

答案 0 :(得分:5)

您可以通过预定义标识符__func__获取当前函数的名称(但不是指向它的指针)。log(__func__, "blabla"); 是C99的一部分。

{{1}}

Here's the reference

答案 1 :(得分:2)

我不确定指向函数的指针,但预定义的标识符__func__返回函数的名称。也许这可以帮助......

事实上,我会用宏替换你的函数log,所以你不必每次都粘贴名称,如下所示:

#define log(x) log(__func__,x)

答案 2 :(得分:0)

您可以结合使用 __ FILE __ __ LINE __ 。它适用于MicrosoftGCC编译器。