我有许多不同的功能,它们都使用类似于此的printf
语句的简单__func__
语句:
printf("%s - hello world!", __func__);
现在我遇到的问题是,在某些函数中,它返回<unknown>
而不是函数名。
为什么?难道我做错了什么? AFAIK __func__
是c99
的一部分,所以我不明白为什么它不像宣传的那样工作。
我在Debian中使用GCC 4.7.2。
答案 0 :(得分:2)
听起来像你要包含的标题必须做与此bug类似的内容并定义__func__
,如下所示:
define __func__ "<unknown>"
所以你只能在包含那个标题时看到它。测试此方法的一种快速方法是在__FUNCTION__
不起作用的代码部分中使用__func__
。然后你需要缩小它,找出哪个标题有麻烦的逻辑并修复它。