2013-08-02 3 views
6

나는 많은 다른 기능을 가지고 있고, 그들은 모두이 하나와 유사한 __func__를 사용하여 간단한 printf 문이 있습니다__func__가 C의 일부 기능에서 <unknown>을 반환하는 이유는 무엇입니까?

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

지금은로 실행하고 문제가 일부 기능에서이 <unknown> 대신 함수의 반환입니다 이름.

왜 그렇습니까? 내가 뭔가 잘못하고 있는거야? AFAIK __func__c99의 일부로, 광고 된대로 작동하지 않는 이유를 알지 못합니다.

데비안에서는 GCC 4.7.2를 사용하고 있습니다.

+1

[SSCCE] (http://www.sscce.org/)를 제공 할 수 있습니까? http://bugs.mysql.com/bug.php?id=65294와 유사하면 궁금합니다. 헤더가 포함되는 것은 문제입니다. –

+2

우연한 사건을 보여줄 수 있습니까? – nouney

+0

C 호환성을 위해 다른 gcc 옵션을 사용하여 다른 모듈을 빌드 할 수 있습니까? – alk

답변

2

그것은 당신이 bug과 비슷한 일을 다음과 같이 __func__을 정의해야 포함한 헤더 같은 소리 :

define __func__ "<unknown>" 

하고 해당 헤더 (들)을 포함 할 때 그래서 당신은 단지 그것을 참조하십시오. 이를 테스트하는 빠른 방법은 __func__이 작동하지 않는 코드 섹션에서 __FUNCTION__을 사용하는 것입니다. 그런 다음 그것을 좁히고 어떤 헤더에 문제가있는 논리가 있는지 파악하고 수정해야합니다.