식별자의 UTF-8 문자: G의 제한된 지원
확장 식별자를 지원함에도 불구하고 G 4.7에서는 UTF-8 문자에 대한 지원이 부족합니다. 식별자에서. 이 문제는 C 표준(부속서 E.1)에 따라 허용되는 웃는 얼굴 이모티콘(U 1F603)과 같은 유니코드 문자를 사용하려고 할 때 발생합니다.
G의 유니코드 문자 제한
처음에 저자는 유니코드 문자를 표현하기 위해 범용 문자 이름(Uxxxx)을 사용해 보았습니다. 그러나 G는 "U0001F603"이 식별자에서 유효하지 않다는 이유로 이 접근 방식을 거부했습니다.
-fextended-identifiers의 제한된 기능
-fextended-identifiers 옵션 , 식별자 지원 확장을 주장하지만 G 4.7이 부족합니다. 오래된 C 98 및 C99 표준을 준수하는 ucnid.tab에 정의된 좁은 범위의 문자만 인식합니다.
교차 컴파일러 호환성
GCC 4.9 기준 , C11 문자 세트에 대한 지원이 추가되었습니다. 이를 통해 U0001F603을 식별자로 사용할 수 있습니다. 그러나 GCC 8.2에서도 이모티콘을 사용한 원본 코드는 여전히 문제가 있습니다.
반면 Clang 3.3에서는 -fextended-identifiers 또는 -finput-charset=UTF와 같은 추가 옵션이 없어도 코드에 문제가 없습니다. -8.
위 내용은 확장된 식별자 지원에도 불구하고 G 4.7이 식별자의 UTF-8 문자 때문에 어려움을 겪는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!