ホームページ > バックエンド開発 > C++ > 標準に違反することなく C 識別子でアンダースコアを使用できますか?

標準に違反することなく C 識別子でアンダースコアを使用できますか?

Linda Hamilton
リリース: 2024-12-28 21:25:12
オリジナル
590 人が閲覧しました

Can I Use Underscores in C   Identifiers Without Breaking the Standard?

C 識別子でアンダースコアを使用することは許可されていますか?

C では、メンバー変数の名前付けに特定の規則が採用されています (先頭に次のようなものを付けるなど)。ローカル変数やパラメータと区別するために「m_」のような文字を使用します。ただし、.NET などの他のフレームワークで見られるように、プレフィックスとしてアンダースコアを使用すると、C 標準での有効性について疑問が生じます。

アンダースコアの使用法を管理するルール

C 標準によれば、以下のルールがアンダースコアの使用に適用されます。識別子:

予約されたスコープ

  • アンダースコアで始まり、その後に大文字が続く名前、または隣接するアンダースコアを含む名前は、任意のスコープで実装で使用するために予約されています。
  • >

グローバル名前空間

  • アンダースコアで始まる識別子は、グローバル名前空間用に予約されています。

std Namespace

  • std 名前空間内のすべてのものは、特殊化を含めて予約されています。 templates.

C99 の制限

C には直接適用されませんが、C99 標準ではアンダースコアの使用をさらに制限しています:

  • アンダースコアで始まり、その後に大文字が続く識別子は、 use.
  • アンダースコアで始まる識別子は、ファイル スコープ識別子として予約されています。

その他の制限

  • アンダースコアで始まる識別子
  • Double は一般的に推奨されません。アンダースコア (__) は完全に避けてください。
  • _t で終わる識別子は、追加の型名用に POSIX 標準によって予約されています。

POSIX 標準予約識別子

POSIX 標準では、競合する可能性のある多数の識別子も予約されています「E」、「is」、「to」、「LC_」などの接頭辞で始まるコードを含む、通常のコードの使用法。

結論

アンダースコアを使用する場合C の識別子は技術的に許可されていますが、潜在的な競合や混乱を避けるために、上記のルールに従うことをお勧めします。

以上が標準に違反することなく C 識別子でアンダースコアを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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