为什么__func__在C?</unknown>的某些函数中返回<unknown>

时间:2013-08-02 11:39:45

标签: c gcc c99 func

我有许多不同的功能,它们都使用类似于此的printf语句的简单__func__语句:

printf("%s - hello world!", __func__);

现在我遇到的问题是,在某些函数中,它返回<unknown>而不是函数名。

为什么?难道我做错了什么? AFAIK __func__c99的一部分,所以我不明白为什么它不像宣传的那样工作。

我在Debian中使用GCC 4.7.2。

1 个答案:

答案 0 :(得分:2)

听起来像你要包含的标题必须做与此bug类似的内容并定义__func__,如下所示:

define __func__ "<unknown>"

所以你只能在包含那个标题时看到它。测试此方法的一种快速方法是在__FUNCTION__不起作用的代码部分中使用__func__。然后你需要缩小它,找出哪个标题有麻烦的逻辑并修复它。