> 백엔드 개발 > C++ > typeid.name()에서 GCC의 잘못된 유형 이름을 어떻게 해독할 수 있습니까?

typeid.name()에서 GCC의 잘못된 유형 이름을 어떻게 해독할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-11-26 06:04:09
원래의
611명이 탐색했습니다.

How Can I Demangle GCC's Mangled Type Names from typeid.name()?

GCC에서 typeid.name()을 사용하여 변형되지 않은 유형 이름 제거

유형 이름을 검색하기 위해 typeid.name()을 활용하는 경우 , 다른 컴파일러는 다양한 결과를 제공할 수 있습니다. 예를 들어, GCC는 "잘못된" 이름을 반환하는 것으로 알려져 있지만 Visual C는 잘린 이름을 제공합니다.

이러한 불일치는 typeid.name()의 반환 값이 구현에 따라 정의된다는 사실에서 비롯됩니다. C 표준에 따라 각 구현에는 유형 이름을 표시하는 방법을 결정할 재량권이 있습니다.

GCC의 경우 typeid.name()에서 반환된 이름은 "맹글링된 이름"이라는 추가 정보를 전달합니다. " 이 형식에는 내부 컴파일러 목적으로 사용되는 장식이 포함되어 있습니다. 수정된 유형 이름을 얻으려면 c filt 명령 또는 __cxa_demangle 함수를 사용할 수 있습니다.

c filt 4Blah

출력: struct Blah

__cxa_demangle("4Blah", 널포인트, 널포인트, nullptr)

출력: Blah

이러한 도구를 활용하면 데코레이팅된 유형 이름을 정리하고 원하는 정리된 표현을 검색할 수 있습니다.

위 내용은 typeid.name()에서 GCC의 잘못된 유형 이름을 어떻게 해독할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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