> 백엔드 개발 > C++ > 런타임에 함수 이름을 얻으려면 어떤 C/C 식별자를 사용해야 합니까?

런타임에 함수 이름을 얻으려면 어떤 C/C 식별자를 사용해야 합니까?

Patricia Arquette
풀어 주다: 2024-12-13 00:13:14
원래의
762명이 탐색했습니다.

Which C/C   Identifier Should I Use to Get a Function's Name at Runtime?

함수 이름 획득을 위한 올바른 식별자 선택

C와 C는 런타임 중에 활성 함수의 이름을 검색하기 위한 여러 식별자를 제공합니다: __PRETTY_FUNCTION__ , __FUNCTION__ 및 __func__. 이 가이드에서는 이러한 식별자 간의 차이점을 살펴보고 사용법에 대한 지침을 제공합니다.

__func__:

"__func__"는 다음을 포함하는 문자 배열을 나타내는 C99 도입 식별자입니다. 함수의 이름. 각 함수 내에서 암시적으로 정의됩니다. C에서는 구현 정의 문자열을 제공하는 func이 C 11에 도입되었습니다.

__FUNCTION__:

"__FUNCTION__"은 사전 정의된 문자열입니다. gcc 및 Visual C와 같은 컴파일러에서 지원되는 표준 확장입니다. 그러나 지원되는 경우 func을 사용하고 func을 사용할 수 없는 경우에만 FUNCTION을 사용하는 것이 좋습니다.

__PRETTY_FUNCTION__:

"__PRETTY_FUNCTION__"은(는) __FUNCTION__과 유사한 gcc 특정 확장자입니다. C 함수의 경우 서명을 포함하여 "예쁜" 이름을 표시합니다. Visual C에는 비슷한 확장명인 __FUNCSIG__이 있습니다.

사용할 식별자 결정:

선택은 컴파일러 지원 및 원하는 함수 이름 형식에 따라 다릅니다.

  • 가능한 경우 func를 사용하세요(대부분의 최신 버전에서 지원됨). 컴파일러)
  • func을 사용할 수 없는 경우 FUNCTION을 사용하세요.
  • PRETTY_FUNCTION 또는 FUNCSIG을 사용하세요. 함수 서명이 있는 "예쁜" 이름(gcc 또는 Visual C 만)

문서:

  • __func__: C99 §6.4.2.2/1
  • func (C):C11 §8.4.1[dcl.fct.def.general]/8
  • __FUNCTION__, __PRETTY_FUNCTION__: gcc 문서, "문자열로 된 함수 이름"
  • __FUNCSIG__: MSDN 문서, "미리 정의된 매크로"( 비주얼C)

위 내용은 런타임에 함수 이름을 얻으려면 어떤 C/C 식별자를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿