【发布时间】:2020-10-08 10:08:37
【问题描述】:
__PRETTY_FUNCTION__ 产生的字符串的生命周期是多少?
我知道__func__ 生成等效于static const char __func__[] = "function-name";,感谢static,如果我想创建函数中某处发生的事情的记录以供以后参考,我可以存储@987654325 的值@ 在记录中的const char* 字段中,并在我离开函数范围很久之后随时检索它。
__PRETTY_FUNCTION__ 的行为方式是否相同,或者它生成的字符串是否表现为本地临时值?说,这会可靠地工作,还是会失败,fname 指向函数名曾经所在的位置,我需要做一个缓冲区并做strncpy() 或类似的操作?
#include <stdio.h>
const char* fname = NULL;
void foo()
{
fname = __PRETTY_FUNCTION__;
}
int main()
{
foo();
printf(fname);
return 0;
}
【问题讨论】: