C 標準はかつて、名前のない名前空間を名前空間の範囲内のオブジェクト宣言での static キーワードの使用を非推奨にしました。優れた代替手段。
名前のない名前空間には、static キーワードに比べていくつかの利点があります。
たとえば、名前空間内で静的関数と変数を宣言することは有効です。
static int sample_function() { ... } static int sample_variable;
ただし、静的クラスまたは構造体の宣言は無効です:
// Error: Static types not allowed in namespace scope static class sample_class { ... }; static struct sample_struct { ... };
名前のない名前空間がこの問題を解決します。名前空間スコープで型を宣言する方法を提供することにより:
// Legal code using unnamed namespace namespace { class sample_class { ... }; struct sample_struct { ... }; }
静的キーワードは C 11 で標準準拠になりましたが、名前のない名前空間は、提供するという点で依然として優れています。変数と型の両方、およびコードのカプセル化を強化するためのより包括的なスコープ。
以上が無名名前空間と静的キーワード: C で優れたスコープとカプセル化を提供するのはどちらですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。