C 我可以得到一个指向当前函数的指针吗?

C 我可以得到一个指向当前函数的指针吗?,c,function,pointers,logging,C,Function,Pointers,Logging,是否可以获取指向当前函数的指针?如果是,我怎样做 动机:我有一个做日志记录的函数,我想调用 log(currentfunc, "blabla") 例如,它执行一些输出。您可以通过C99的一部分预定义标识符\uuuuu func\uuuu>获取当前函数的名称(但不是指向它的指针) log(__func__, "blabla"); 我不确定指向函数的指针,但预定义的标识符\uuu func\uu返回函数的名称。也许这能帮上忙 事实上,我会用一个宏替换函数log,这样您就不必每次都粘贴到名称中,例

是否可以获取指向当前函数的指针?如果是,我怎样做

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

log(currentfunc, "blabla")

例如,它执行一些输出。

您可以通过C99的一部分预定义标识符
\uuuuu func\uuuu>获取当前函数的名称(但不是指向它的指针)

log(__func__, "blabla");

我不确定指向函数的指针,但预定义的标识符
\uuu func\uu
返回函数的名称。也许这能帮上忙

事实上,我会用一个宏替换函数
log
,这样您就不必每次都粘贴到名称中,例如:

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

您可以结合使用\uuuuuuuuu文件\uuuuu行。它将与和编译器一起使用。

如果您想在大多数编译器中记录,可以使用宏获取函数名_____func______;是宏,如果内存也在这里。不要调用您的函数
log
——math.h中有一个常用的函数,名为
log
,它返回自然对数。可能重复:也可能重复@Kirilenko hmmm预定义标识符。。。好的,你知道用c89做这件事的方法吗?在c89中没有必要这样做,但我想知道它。@cmusicmatze:不,在c89中,最好使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。C++11有
\uuuuuuu函数
,它也有同样的功能。请参见@ArmenTsirunyan:IIANM,
\uuuuuuuu函数
扩展为字符串,而不是标识符。@einpoklum:C99中的
\uuuuuu函数
也是如此,不是吗?在C或C++中,不能获得指向当前函数的指针。