>백엔드 개발 >C++ >G가 -fextended-identifier를 사용하더라도 식별자의 일부 유니코드 문자를 여전히 제한하는 이유는 무엇입니까?

G가 -fextended-identifier를 사용하더라도 식별자의 일부 유니코드 문자를 여전히 제한하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-10 09:53:02451검색

Why Does G   Still Restrict Some Unicode Characters in Identifiers Even With -fextended-identifiers?

식별자의 유니코드 문자: G의 제한 사항

-fextended-identifiers 옵션을 활성화했음에도 불구하고 G 4.7에서는 특정 유니코드 문자의 사용을 금지합니다. , 웃는 얼굴 기호(☺)를 식별자로 포함합니다. 이 제한은 식별자의 UTF-8 문자 지원 부족으로 인해 발생합니다.

식별자를 범용 문자 이름(U0001F603)으로 변환하는 경우에도 컴파일러가 여전히 실패합니다. 이는 G가 C99 및 C 98 표준을 기반으로 ucnid.tab에 정의된 대로 식별자에 대해 제한된 문자 집합만 지원하기 때문입니다.

게다가 -fextended-identifiers 옵션은 아직 실험적이며 그렇지 않을 수도 있습니다. 의도한 대로 작동합니다. 이러한 제한 사항을 해결하기 위해 G는 버전 4.9.0에서 C11 문자 집합에 대한 지원을 도입했습니다. 이를 통해 U0001F603을 포함하여 BMP 범위 내의 문자를 사용할 수 있습니다.

그러나 -finput-charset=UTF-8을 사용하더라도 ☺와 같은 일부 유니코드 문자에서 문제가 지속됩니다. 이 문제를 추적하기 위해 버그 보고서가 제출되었습니다.

반면 Clang 3.3은 특별한 옵션 없이 원래 식별자(☺)와 범용 문자 이름(U0001F603)을 모두 성공적으로 처리합니다.

위 내용은 G가 -fextended-identifier를 사용하더라도 식별자의 일부 유니코드 문자를 여전히 제한하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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