__FUNCTION__, __func__, __PRETTY_FUNCTION__

2964 단어 iphone
http://blog.csdn.net/linuxheik/article/details/7621155
Solaris 에서 C99 를 지원 하 는func__
gcc 지원FUNCTION__, __func__, __PRETTY_FUNCTION__
저 는 보통FUNC__
C/C++ code

#if defined (__GNUC__)
#  define __FUNC__     ((const char*) (__PRETTY_FUNCTION__))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 19901L
#  define __FUNC__     ((const char*) (__func__))
#else
#  define __FUNC__     ((const char*) (__FUNCTION__))
#endif

http://blog.csdn.net/fullsail/article/details/

한 번 은 ACE 코드 를 디 버 깅 하기 위해 ACE 를 열 었 습 니 다.TRACE 의 스위치 는 몰 려 드 는 로그 출력 에 대한 인상 외 에 도 ACE 의 함수 출입 알림 에 호감 을 갖 게 한다.백 엔 드 디 버 깅 을 할 때,종종 대량의 로그 추적 을 사용 해 야 한다.간단 한 함수 출입 기능 은 좋 은 선택 이다.
ACE 의 실현 을 살짝 살 펴 보 니 효과 가 별로 인 것 같 고 추적 함수 이름 도 스스로 써 야 한다.그다지 시원 하지 도 않다.ACE 는 C++기준 에 대한 여러분 의 지지 정도 에 힘 들 것 으로 추정 합 니 다).한 번 느 꼈 습 니 다.사실은 함수 의 출입 추적 은 모두 하나의 구조의 구조 와 분석 함수 로 추적 할 수 있 고 함수 의 정 보 는 각종 매크로 로 대체 할 수 있 습 니 다.이런 정 보 는 매개 변수 로 이 구조 에 전달 할 수 있다.
 GCC 는 다음 과 같은 함수 매크로 를 실현 했다.
__func__   C99 의 표준 이지 만 GCC 는 함수 이름 만 출력 합 니 다.VC.NET 을 몰라요. 왜 지지 하지 않 습 니까?
__FUNCTION__  동func__,
__PRETTY_FUNCTION__  표준 매크로 가 아 닙 니 다.이 홍 비FUNCTION__기능 이 더욱 강하 고,  g++로 C++프로그램 을 컴 파일 하면FUNCTION__클래스 의 구성원 이름 만 출력 할 수 있 고 클래스 이름 은 출력 하지 않 습 니 다.그리고PRETTY_FUNCTION__...으로 써   ::() 의 형식 출력 구성원 함수 에 대한 상세 한 정보(주: parameters-list 의 형 삼 형식 만 출력 합 니 다. 형식 인삼 이름 을 출력 하지 않 습 니 다).gcc 로 C 프로그램 을 컴 파일 하면PRETTY_FUNCTION__와FUNCTION__기능 이 같다.
VC.NET 에서 제공 하 는 함수 매크로 는:
__FUNCTION__ 함수,클래스 이름과 함수 이름 의 출력 을 제공 합 니 다.

좋은 웹페이지 즐겨찾기