>백엔드 개발 >C++ >`__PRETTY_FUNCTION__`, `__FUNCTION__`, `__func__`의 차이점은 무엇인가요?

`__PRETTY_FUNCTION__`, `__FUNCTION__`, `__func__`의 차이점은 무엇인가요?

Patricia Arquette
Patricia Arquette원래의
2024-12-23 21:51:10317검색

What are the Differences Between `__PRETTY_FUNCTION__`, `__FUNCTION__`, and `__func__`?

PRETTY_FUNCTION__, __FUNCTION__ 및 __func

의 차이점 탐색

코딩 영역에서는 이해하는 것이 중요합니다. 세 가지 식별자의 차이점: __PRETTY_FUNCTION__, __FUNCTION__ 및 __func__. 각각은 고유한 속성과 문서를 갖고 있어 원하는 결과에 따라 선택에 영향을 미칩니다.

func

C99에 도입된 func는 함수 범위 내에서 현재 함수 이름에 액세스하기 위한 간단한 솔루션을 제공합니다. 장식되지 않은 함수 이름을 포함하는 문자 배열로 확장됩니다. 이 식별자는 C에서도 인기를 얻었으며 C 11에는 "구현 정의 문자열"이라는 약간 다른 정의가 추가되었습니다.

FUNCTION특정 C 컴파일러는 FUNCTION을 사전 표준 확장으로 지원하지만 그것에만 의존하는 것은 바람직하지 않습니다. func

지원이 부족한 컴파일러의 경우

FUNCTION이 대체 역할을 할 수 있지만 표준화된 버전에 비해 제한이 있습니다.입력

PRETTY_FUNCTION

__PRETTY_FUNCTION__은 gcc 전용 확장 프로그램으로 __FUNCTION__과 유사하게 작동합니다. 그러나 C 함수의 맥락에서는 함수 서명이 포함된 향상된 함수 이름 버전을 제공합니다. Visual C는 미묘한 차이가 있지만 __FUNCSIG__에서 비슷한 대안을 제공합니다.

문서 및 가용성

비표준 매크로의 경우 해당 컴파일러 문서를 참조하는 것이 좋습니다. . Visual C 확장은 MSDN의 C 컴파일러용 "미리 정의된 매크로" 아래에 잘 문서화되어 있으며, gcc 확장은 문서 페이지 "문자열로 표시되는 함수 이름"에서 다룹니다.

올바른 식별자 선택

  • 적절한 식별자 선택은 원하는 결과와 컴파일러에 따라 다릅니다. support.
  • __func__: C99 이상에서 장식되지 않은 함수 이름에 대한 표준화된 액세스를 위해 이를 사용합니다.__FUNCTION__:
  • 사용을 고려하세요. 이는
  • func을 사용할 수 없을 때 발생하지만 주의하세요. 제한 사항.
__PRETTY_FUNCTION__:

C 코드, 특히 gcc의 서명이 있는 "예쁜" 함수 이름이 필요한 경우 이 옵션을 선택하세요.

이해함으로써 이러한 식별자의 미묘한 차이를 통해 해당 기능을 효과적으로 활용하여 코딩에 필요한 기능 관련 정보를 얻을 수 있습니다. 노력합니다.

위 내용은 `__PRETTY_FUNCTION__`, `__FUNCTION__`, `__func__`의 차이점은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.