拡張識別子のサポートにもかかわらず、G 4.7 が識別子の UTF-8 文字に苦労するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-10 08:00:03
オリジナル
447 人が閲覧しました

Why Does G   4.7 Struggle with UTF-8 Characters in Identifiers Despite Extended Identifier Support?

識別子の UTF-8 文字: G の制限付きサポート

拡張識別子をサポートしているにもかかわらず、G 4.7 は UTF-8 文字をサポートしていません識別子で。この問題は、C 標準 (付録 E.1) に従って許可されているスマイリーフェイスの絵文字 (U 1F603) などの Unicode 文字を使用しようとすると発生します。

G での Unicode 文字制限

当初、作者は Unicode 文字を表すためにユニバーサル文字名 (Uxxxx) を使用しようとしました。しかし、G は、「U0001F603」が識別子として有効ではないことを理由に、このアプローチを拒否しました。

-fextended-identifiers の制限された機能

-fextended-identifiers オプションは、識別子のサポートを拡張すると主張していますが、G 4.7 では不十分です。 ucnid.tab で定義された狭い範囲の文字のみを認識します。これは、古い C 98 および C99 標準に準拠しています。

コンパイラ間の互換性

GCC 4.9 以降、C11 文字セットのサポートが追加されました。これにより、U0001F603 を識別子として使用できるようになります。ただし、GCC 8.2 であっても、絵文字を使用する元のコードには依然として問題があります。

対照的に、Clang 3.3 では、-fextended-identifiers や -finput-charset=UTF などの追加オプションがなくても、コードに問題はありません。 -8.

以上が拡張識別子のサポートにもかかわらず、G 4.7 が識別子の UTF-8 文字に苦労するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート