ホームページ > バックエンド開発 > C++ > C の C ヘッダー: グローバル名前空間または std:: 名前空間?

C の C ヘッダー: グローバル名前空間または std:: 名前空間?

DDD
リリース: 2024-11-29 17:10:12
オリジナル
347 人が閲覧しました

C Headers in C  : Global Namespace or std:: Namespace?

C : Global Namespace または std:: Namespace での C ヘッダーの使用?

C では、C ヘッダーの使用はマイナーで可能です名前を変更すると、たとえば、stdio.h は cstdio になります。このため、C コードで C 関数を呼び出すときに、std:: 名前空間とグローバル名前空間のどちらの関数を使用することが望ましいかという疑問が生じます。

説明:

C 11 標準によれば、「name.h」形式のすべての C ヘッダー名は、C 標準ライブラリとの互換性を確保するために、グローバル名前空間に自動的に配置されます。ただし、標準では、これらの名前が std:: 名前空間内で最初に宣言または定義されてからグローバル名前空間に挿入されるのか、あるいはその逆なのかは指定されていません。

推奨事項:

標準の推奨事項に基づいて、「cname」ヘッダー (cstdio など) を含め、宣言と使用を優先することが提案されています。次の理由により、std:: 名前空間からの定義が削除されました:

  • "name.h" ヘッダーの非推奨: "name.h" ヘッダーは非推奨となっており、削除される可能性があります。
  • コードの明瞭性の向上: std:: 名前空間は、C と C の宣言を区別するのに役立ち、コードの可読性を高めます。

例:

推奨されるアプローチは次のとおりです:

#include <cstdio>

int main() {
    std::printf("Hello world\n");
}
ログイン後にコピー

結論:

それまでの間グローバル名前空間または std:: 名前空間のいずれかを使用して C 関数を呼び出すことは可能ですが、C 標準の提案に従い、std:: 名前空間の宣言と定義で cname ヘッダーを使用することを推奨します。

以上がC の C ヘッダー: グローバル名前空間または std:: 名前空間?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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